PDA

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


cultrasta
21.12.2006, 01:36
Здравтвуйте.
Такое дело.
Нужно залить файл на сайт 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;

cultrasta
21.12.2006, 01:41
Имеел ввиду: http://picsaway.com !