سلام دوستان و خسته نباشید
من برنامه سیستمی با سی پلاس پلاس دارم می نویسم که هارد رو اسکن میکنه و فایل های پی دی اف را انتخاب و ارسال میکنه برای سرور واسه آپلود.
قبلا با پی اچ پی عملیات آپلودر را انجام دادم اما سرور ما فقط asp.net پشتیبانی می کنه.
حالا من آپلودر را انجام دادم فقط از طریق html میشه آپلود کرد و با وب.
من میخوام با سی پلاس پلاس فایل هارو به متغیر که آپلودر داره مستقیم بفرستم و اون هم آپلود کنه
اما آپلودر تحت runat server کار می کنه و فقط از کد html که همراهشه فایل میگیره
چیکار کنم که html را حذف کنم و فقط از سی پلاس پلاس فایل بگیره و آپلود کنه.
کد آپلودر در زیر است :
<%@ Page Language="C#" %> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) try { FileUpload1.SaveAs("D:\\uploads\" + FileUpload1.FileName); Label1.Text = "File name: " + FileUpload1.PostedFile.FileName + "" + FileUpload1.PostedFile.ContentLength + " kb" + "Content type: " + FileUpload1.PostedFile.ContentType; } catch (Exception ex) { Label1.Text = "ERROR: " + ex.Message.ToString(); } else { Label1.Text = "You have not specified a file."; } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Upload Files</title> </head> <body> <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Upload File" /> <asp:Label ID="Label1" runat="server"></asp:Label></div> </form> </body> </html>
و کد سی پلاس پلاس جهت ارسال فایل به آپلودر :
//filepath = ""C:\\Users\\system\\Desktop\\1.pdf""; up_to_serv("http://mywebsite.com/uploader.aspx",filepath); bool scanner::up_to_serv(string url,char *filepath) { CURL *curl; CURLcode res; struct MemoryStruct chunk; chunk.memory = (char*)malloc(1); chunk.size = 0; struct curl_httppost *formpost = NULL; struct curl_httppost *lastptr = NULL; struct curl_slist *headerlist = NULL; static const char buf[] = "Expect:"; curl_global_init(CURL_GLOBAL_ALL); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "FileUpload1", CURLFORM_FILE, filepath, CURLFORM_END); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk); curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0"); headerlist = curl_slist_append(headerlist, buf); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); res = curl_easy_perform(curl); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { printf("%s\n", chunk.memory); } curl_easy_cleanup(curl); curl_formfree(formpost); curl_slist_free_all(headerlist); } return true;
سلام
شما اگه می خواهی این کار بطور خودکار انجام بشه و فارغ از سرور یا کلاینت باشه دیگه نمی تونی از کنترل استفاده کنی
خودت باید کدهای پشت کنترل آپلودر را بنویسی و دیگه استفاده از کنترل منطقی نیست برای پروژه ی شما
ممنون دوست عزیز بابت پاسخ.
حالا من پی اچ پی و سی پلاس پلاس بلدم و دات نت کار نکردم و این کد دات نت هم از تو اینترنت پیدا کردم.
حالا چیکار کنم که همچین آپلودر را داشته باشم ؟
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)