Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

как отослать данные формы с ENCTYPE=multipart/form-data   Найти похожие ветки 

 
sergeport   (2004-02-18 21:28) [0]

подскажите, плз. мне нужно передать данные perl-скрипту методом пост, а именно: данные формы с ENCTYPE=multipart/form-data. т.е. надо передать файл для загрузки (тэг <input type="file" name="file_to_load">). пробовал юзать компонент TNMHTTP - не вышло, он по-моему ваще глючит с POST-запросами :(

я сам программирую на жабе, но вот появилась необходимость написать клиентскую часть именно на делфях... а тут я ноль :)
буду очень признателен за любой совет.

пишу на D6


 
Reindeer Moss Eater ©   (2004-02-19 09:10) [1]

Соединяешься с web сервером.
Формируешь заголовок POST, задаешь boundaries и содержимое параметров.
Отслылаешь все это несколькими Writeln;
Завершаешь еще одним пустым Writeln.
Далее пересылаешь двоичные данные файла.
Когда они закончились отправляешь boundary + "--"
Все.


 
sergeport   (2004-02-19 11:34) [2]

а какой компонент надо использовать? можно подробнее, плз?


 
Reindeer Moss Eater ©   (2004-02-19 11:46) [3]

Какого надо тебе - не знаю.
Можно использовать любого TCP клиента


 
sergeport   (2004-02-21 01:10) [4]

сорри за назойливость. а можно привести какой-нить прииер? буду очень признателен :)


 
sergeport   (2004-02-21 12:20) [5]

сенкс, я уже сам допер. сделал через TTCPClient

procedure TmainForm.sendFormButtonClick(Sender: TObject);
var
 fileName, postData, firstReceived : String;
 stream : TFileStream;
 buf : Char;
 i : Integer;
begin
//  tcpC - TTCPClient
 tcpC.Sendln("POST /cgi-bin/upload.cgi HTTP/1.1");
 tcpC.Sendln("Content-Type: application/x-www-form-urlencoded; boundary=---------------------------7d4245307104b0");
 tcpC.Sendln("Host: myhost.com");
  postData := "login=mylogin&password=mypassword&uploadedfile=FULL_PATH_TO_FILE";
 tcpC.Sendln("Content-Length: "+ inttostr(length(postData)));
 tcpC.Sendln("");
 tcpC.Sendln(postData);
 tcpC.Sendln("");
 fileName := "FULL_PATH_TO_FILE";
 try
   stream := TFileStream.Create(fileName, fmOpenReadWrite);
   tcpC.SendStream(stream);
   for i := 0 to stream.Size - 1 do
     begin
       Stream.Seek(i,soFromBeginning);
       stream.Read(buf,1);
       tcpC.SendBuf(buf,1);
     end;
 finally
   stream.Free;
 end;
 tcpC.Sendln("---------------------------7d4245307104b0");
 firstReceived := tcpC.Receiveln();
end;



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
7-1077999484
Novichok
2004-02-28 23:18
2004.04.25
нельзя выполнить ShutDown :(


7-1077884817
xShadow
2004-02-27 15:26
2004.04.25
Отображение константы для PE файла


11-1065002302
Ал
2003-10-01 13:58
2004.04.25
PopUp меню, открываемое при щелчке по иконке в трее


1-1081153034
Вано
2004-04-05 12:17
2004.04.25
Связь с приложениями и папками


14-1080647782
panov
2004-03-30 15:56
2004.04.25
Настройка учетных записей.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский