求C语言HTTP上传文件的代码!!!(不用MFC) 

解决方案 »

  1.   

    可以给你点参考
    使用win32api的一组。
    HINTERNET InternetOpen(
        IN LPCSTR lpszAgent,
        IN DWORD dwAccessType,
        IN LPCSTR lpszProxyName,
        IN LPCSTR lpszProxyBypass,
        IN DWORD dwFlags
    );
    HINTERNET InternetConnect(
        IN HINTERNET hInternetSession,
        IN LPCSTR lpszServerName,
        IN INTERNET_PORT nServerPort,
        IN LPCSTR lpszUsername,
        IN LPCSTR lpszPassword,
        IN DWORD dwService,
        IN DWORD dwFlags,
        IN DWORD dwContext
    );
    HINTERNET HttpOpenRequest(
        IN HINTERNET hHttpSession,
        IN LPCSTR lpszVerb,
        IN LPCSTR lpszObjectName,
        IN LPCSTR lpszVersion,
        IN LPCSTR lpszReferer,
        IN LPCSTR FAR * lpszAcceptTypes,
        IN DWORD dwFlags,
        IN DWORD dwContext
    );
    BOOL HttpSendRequest(
        IN HINTERNET hHttpRequest,
        IN LPCSTR lpszHeaders,
        IN DWORD dwHeadersLength,
        IN LPVOID lpOptional,
        DWORD dwOptionalLength
    );
    BOOL InternetWriteFile(
        IN HINTERNET hFile,
        IN LPCVOID lpBuffer,
        IN DWORD dwNumberOfBytesToWrite,
        OUT LPDWORD lpdwNumberOfBytesWritten
    );
    BOOL InternetReadFile(
        IN HINTERNET hFile,
        IN LPVOID lpBuffer,
        IN DWORD dwNumberOfBytesToRead,
        OUT LPDWORD lpNumberOfBytesRead
    );
    用这些函数写个通信类就搞定了呵呵
      

  2.   

    ....LS等于没说嘛HTTP传文件用POST方式就好了。GET有长度限制
    参照这个
    CHttpConnection *pConnection=session.GetHttpConnection(""+app->url+"",DWORD(80));

    CHttpFile* pFile=pConnection->OpenRequest("POST","/aa.aspx");

    CString formdata="tname="+app->vec[i]->name;
    formdata+="&ttime="+app->vec[i]->time;
    CString path=app->vec[i]->Localpath;
    formdata+="&state="+ToString(app->vec[i]->state);
    formdata+="&path="+path;
    formdata+="&xx="+app->vec[i]->report;

    pFile->AddRequestHeaders("Accecpt: */*");
    pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded"); 
    pFile->SendRequest(NULL,0,(LPVOID)(LPCTSTR)formdata,formdata.GetLength());
      

  3.   

    WEB那边用Request.Form接收保存就好了