http://www.codesky.net/article/200309/4172.html
不知道怎么调用?

解决方案 »

  1.   

    上传文件function HttpPostFile(Url, FileField, FileName: string): string;
    const
    Agent = 'SURE';
    MaxLen = 1024 * 100; //在这里定义发送文件最大限制,100K
    var
    hSession, hOpenReq, hConnection: HInternet;
    SendBuf: array[0..MaxLen - 1] of char;
    SendLen: DWord;
    RecBuf: array[0..99] of char;
    RecLen, dum: DWORD;
    sHeader: string;
    UrlHost, UrlFile,Bound: string;
    begin
    result := '';
    dum := 0;
    UrlHost := ExtractUrlAddress(Url);
    UrlFile := ExtractUrlFileName(Url);SendLen := BuildBound(FileField, FileName, @SendBuf[0],Bound);
    if SendLen < 1 then
        exit;
    hSession := InternetOpen(PChar(Agent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); //INTERNET_FLAG_RAW_DATA
    try
        if hSession = nil then
          result := 'Error openning internet'
        else begin
          hConnection := InternetConnect(hSession, PChar(UrlHost), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
          try
            if hConnection = nil then
              result := 'Error openning internet connection'
            else begin
              hOpenReq := HTTPOpenRequest(hConnection, 'POST', PChar(UrlFile), 'HTTP/1.1', nil, nil, INTERNET_FLAG_RELOAD, 0);
              try
                if hOpenReq = nil then
                  result := 'Error openning internet request'
                else begin
                  sHeader := 'Host: ' + UrlHost;
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Accept-Language: en-us';
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Content-Type: multipart/form-data;boundary='+Bound;
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Accept-Encoding: gzip, deflate';
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Connection: Keep-Alive';
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  sHeader := 'Cache-Control: no-cache';
                  HttpAddRequestHeaders(hOpenReq, PChar(sHeader), Length(sHeader), HTTP_ADDREQ_FLAG_ADD);
                  HTTPSendRequest(hOpenReq, nil, 0, @SendBuf, SendLen);
                  RecLen := SizeOf(RecBuf);
                  HTTPQueryInfo(hOpenReq, HTTP_QUERY_STATUS_TEXT, @RecBuf, RecLen, dum);
                  result := string(RecBuf);
                end;
              finally
                InternetCloseHandle(hOpenReq);
              end;
            end;
          finally
            InternetCloseHandle(hConnection);
          end;
        end;
    finally
        InternetCloseHandle(hSession);
    end;
    end;
     
      

  2.   

    怎样调用呢?FileField是什么东西