HTTP запрос/загрузка файла через HTML форму на Delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by cultrasta, 21 Dec 2006.

  1. cultrasta

    cultrasta New Member

    Joined:
    19 Dec 2006
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравтвуйте.
    Такое дело.
    Нужно залить файл на сайт picsway.com..
    Не могу разобраться. Помогите
    Делаю так:

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
    vWebAddr, vPostData, vFlags, vFrame, vHeaders: OleVariant;
    iLoop,Fsz: Integer;
    boundary,msg,s,str:string;
    f:textfile;
    fs:TFileStream;
    filename:string;
    begin
    filename:='e:\bm\1.gif';
    fs:=TFileStream.Create(filename,fmOpenRead);

    vHeaders:= 'Content-Type: multipart/form-data; boundary=7d015813802c47d015813802c4'+#10;

    boundary := '7d015813802c47d015813802c4';
    msg:='--' + boundary + #10+
    'Content-Disposition: form-data; name="submit_check" '+#10#10+
    '1'+#10+
    '--'+boundary+ #10+
    'Content-Disposition: form-data; name="location0" '+#10#10+
    'file'+#10+
    '--'+boundary+ #10+
    'Content-Disposition: form-data; name="file_url0" '+#10#10+
    'paste image url here'+#10+
    '--'+boundary+ #10+

    'Content-Disposition: form-data; name="file_local0"; filename="E:\bm\1.gif" '+#10+
    'Content-Type: text/plain '+#10#10+
    IdEncoderMIME1.Encode(fs, fs.Size)+#10+
    '--'+boundary+'--'+#10;
    fs.free;
    vPostData:= VarArrayCreate([0, Length(msg)], varByte);
    for iLoop := 0 to Length(msg)- 1 do
    begin
    vPostData[iLoop]:= Ord(msg[iLoop+ 1]);
    end;
    vPostData[Length(msg)]:= 0;

    vWebAddr:= 'http://freefile.ru/cgi-bin/upload.cgi';
    WebBrowser1.Navigate2(vWebAddr, vFlags, vFrame, vPostData, vHeaders);

    end;
     
  2. cultrasta

    cultrasta New Member

    Joined:
    19 Dec 2006
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Имеел ввиду: http://picsaway.com !