Advertisement
gdhami

TIdHTTPRangeStream POST Code (2)

Mar 11th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.      IdHTTP                 := TIdHTTP.Create(nil);
  2.      try
  3.         TheCompressor       := TIdCompressorZLib.Create(nil);
  4.  
  5.         with IdHTTP do
  6.         begin
  7.              HTTPOptions     := [hoForceEncodeParams];
  8.              AllowCookies    := True;
  9.              HandleRedirects := True;
  10.              ProtocolVersion := pv1_1;
  11.  
  12.              Compressor      := TheCompressor;
  13.         end;    // with
  14.  
  15.         IdHttp.Head('http://localhost/_tests/resume/sql_dump.sql');
  16.         if (IdHttp.Response.ResponseCode <> 404) then
  17.            StartPos      := IdHttp.Response.ContentLength
  18.         else
  19.             StartPos     := 0;
  20.  
  21.         // =========== //
  22.         // Upload File //
  23.         // =========== //
  24.         TheFile             := TFileStream.Create(FileName, fmOpenRead OR fmShareDenyWrite);
  25.         RangeStream         := TIdHTTPRangeStream.Create(TheFile, StartPos, -1, True);
  26.         try
  27.            if RangeStream.ResponseCode = 206 then
  28.            begin
  29.                 MultipartStream        := TIdMultipartFormDataStream.Create;
  30.                 try
  31.                    MultipartStream.AddFormField('upload_file', 'application/octet-stream', 'utf-8', RangeStream);
  32.  
  33.                    IdHTTP.Post('http://localhost/_tests/resume/t1.php', MultipartStream);
  34.                 finally
  35.                        MultipartStream.Free;
  36.                 end;    // try/finally
  37.            end;
  38.         finally
  39.                RangeStream.Free;
  40.         end;    // try/finally
  41.      finally
  42.             FreeAndNil(IdHTTP);
  43.      end;    // try/finally
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement