مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ciph3r

عضویت از 1397/07/24

کنترل آپلودر asp.net بدون دخالت html سورس کد

  • چهارشنبه 25 مهر 1397
  • 02:32
تشکر میکنم

سلام دوستان و خسته نباشید

من برنامه سیستمی با سی پلاس پلاس دارم می نویسم که هارد رو اسکن میکنه و فایل های پی دی اف را انتخاب و ارسال میکنه برای سرور واسه آپلود.

قبلا با پی اچ پی عملیات آپلودر را انجام دادم اما سرور ما فقط 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" />&nbsp;

        <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;

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • چهارشنبه 25 مهر 1397
  • 08:40

سلام

شما اگه می خواهی این کار بطور خودکار انجام بشه و فارغ از سرور یا کلاینت باشه دیگه نمی تونی از کنترل استفاده کنی

خودت باید کدهای پشت کنترل آپلودر را بنویسی  و دیگه استفاده از کنترل منطقی نیست برای پروژه ی شما

کاربر سایت

ciph3r

عضویت از 1397/07/24

  • چهارشنبه 25 مهر 1397
  • 19:29

ممنون دوست عزیز بابت پاسخ.

حالا من پی اچ پی و سی پلاس پلاس بلدم و دات نت کار نکردم و این کد دات نت هم از تو اینترنت پیدا کردم.

حالا چیکار کنم که همچین آپلودر را داشته باشم ؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)