ciph3r
دوشنبه 23 مهر 1397, 02:24 صبح
سلام دوستان و اساتید
من برنامه کلاینت نوشتم با سی پلاس پلاس که تعدادی فایل را از درایو ها می خواهم آپاود کنم رو سرور ویندوزی که آپلودر با asp.net یا همان upload.aspx هستش
حالا با پی اچ پی فرم html را پاک می کردم و فقط کد php را میزاشتم که مستقیم فایل را به آپلودر میفرستادم و آپلود میکرد اما در دات نت قضیه فرق می کنه و اگر html را پاک کنم و فقط کد asp.net را بزارم خطا میده
حالا بفرمایید چیکار کنم با آپلودر دات نت که از html برای انتخاب فایل و دکمه ارسال استفاده نکنم و مشتقیم با سی پلاس پلاس بتونم فایل را بفرستم به آپلودر و اون هم آپلود کنه ؟
کدهارو در زیر میزارم هر 2تاشون :
<%@ 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 + "<br>" +
FileUpload1.PostedFile.ContentLength + " kb<br>" +
"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" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Upload File" /> <br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label></div>
</form>
</body>
</html>
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);
}
من برنامه کلاینت نوشتم با سی پلاس پلاس که تعدادی فایل را از درایو ها می خواهم آپاود کنم رو سرور ویندوزی که آپلودر با asp.net یا همان upload.aspx هستش
حالا با پی اچ پی فرم html را پاک می کردم و فقط کد php را میزاشتم که مستقیم فایل را به آپلودر میفرستادم و آپلود میکرد اما در دات نت قضیه فرق می کنه و اگر html را پاک کنم و فقط کد asp.net را بزارم خطا میده
حالا بفرمایید چیکار کنم با آپلودر دات نت که از html برای انتخاب فایل و دکمه ارسال استفاده نکنم و مشتقیم با سی پلاس پلاس بتونم فایل را بفرستم به آپلودر و اون هم آپلود کنه ؟
کدهارو در زیر میزارم هر 2تاشون :
<%@ 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 + "<br>" +
FileUpload1.PostedFile.ContentLength + " kb<br>" +
"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" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Upload File" /> <br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label></div>
</form>
</body>
</html>
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);
}