Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Как закачать фото на сайт delphi (https://forum.antichat.xyz/showthread.php?t=210186)

aydar 09.06.2010 00:55

Как закачать фото на сайт delphi
 
вот что снифер перехватывает

Цитата:

-----------------------------23844141621881\r\nContent-Disposition: form-data; name="act"\r\n\r\nadd\r\n-----------------------------23844141621881\r\nContent-Disposition: form-data; name="from"\r\n\r\nfile\r\n-----------------------------23844141621881\r\nContent-Disposition: form-data; name="new_photo"; filename="1.jpg"\r\nContent-Type: image/jpeg\r\n\r\nÿØÿà

Linkus 09.06.2010 02:27

изъяснись конкретнее: что ты перехватил, что за сайт, есть ли попытки написания кода?

Chrome~ 09.06.2010 07:43

Это кодировка multipart form-data, можешь найти о ней инфу в Google. Когда ознакомишься, - без трудностей сможешь загрузить картинку на требуемый сайт.

SultanOFF 09.06.2010 10:38

Код:

var
 formData: TIdMultiPartFormDataStream;
 s,url:string;
 reggi:tregexpr ; 
begin
  try formdata:=TIdMultiPartFormDataStream.Create; formData.AddFile('F',furl,'image/gif');  formData.AddFormField('upload', 'yes'); formData.AddFormField('rotate_angle', '0°');
s:=  form1.idHTP1.Post('http://www.radikal.ru/action.aspx',formData); 
reggi:=tregexpr.Create;
reggi.Expression:='<input id="input_link_1" value="(.*?)"'; if reggi.Exec(s) then begin
url:=reggi.Match[1]; 
showmessage(url) end
 else showmessage('Не удалось загрузить изображение');
  finally  formdata.Free;  reggi.Free; end;

вот делал недавно заливку картинки на радикал, можешь заточить под свой сайт

aydar 09.06.2010 16:07

Вот запрос:
Цитата:

-----------------------------61911981522888\r\nContent-Disposition: form-data;

name="act"\r\n\r\nadd\r\n-----------------------------61911981522888\r\nContent-Disposition: form-data;

name="from"\r\n\r\nfile\r\n-----------------------------61911981522888\r\nContent-Disposition: form-data; name="new_photo";

filename="a_e36a5297.jpg"\r\nContent-Type: image/jpeg\r\n\r\nÿØÿà
вот я попытался сделать запрос, правильно?
Цитата:

formdata:=TIdMultiPartFormDataStream.Create; // создаем переменную пост запрсоа
formData.AddFile('F',filename,'image/jpeg');
formData.AddFormField('act', 'nadd');
formData.AddFormField('from', 'nfile');
formData.AddFormField('name', 'new_photo');
formData.AddFormField('filename', 'имя фото');
formData.Free;

aydar 09.06.2010 22:07

кто поможет?

090808 09.06.2010 22:14

Вот так
Цитата:

multi:=Tidmultipartformdatastream.Create;
multi.addfile('photo', 'фотография.jpg', 'Content-Type: image/jpeg');
form1.idhttp1.post(сайт, multi);

HakaR 09.06.2010 22:57

aydar, зачем ты после заполнения formdata, не отправив запрос сразу его освобождаешь?
Цитата:

formData.AddFile('new_photo', filename, 'image/jpeg');

aydar 09.06.2010 23:29

Цитата:

Сообщение от HakaR
aydar, зачем ты после заполнения formdata, не отправив запрос сразу его освобождаешь?

Забыл поставить :rolleyes: ,

Цитата:

formdata:=TIdMultiPartFormDataStream.Create; // создаем переменную пост запрсоа
formData.AddFile('new_photo', filename, 'image/jpeg');
formData.AddFormField('act', 'nadd');
formData.AddFormField('from', 'nfile');
form1.idhttp1.post(сайт, formData);
formData.Free;
т.е. конечный код должен быть таким?

090808 10.06.2010 14:40

Цитата:

Сообщение от aydar
Забыл поставить :rolleyes: ,



т.е. конечный код должен быть таким?

да


Время: 00:16