Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Indy Http - как отправить файлы на сервер, по запросу... 
:(
    Опции темы
Teran
  Дата 22.3.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Вот есть в браузере страничка:
Код

<form action="ps_action.php?pmode=add_photo" method="post" name="imgupload" ENCTYPE="multipart/form-data">
<input type="hidden" value="photo_package" name="reference">
<input type="hidden" value="" name="file_path">
<input type="hidden" value="stock_photos/" name="image_path">
<input type="hidden" value="0" name="active"
<i><b>Upload 
<select name="mass_upload" id="mass_upload" style="font-size: 9; width:40;" 

onChange="location=document.imgupload.mass_upload.options[document.imgupload.mass_upload.selectedIndex].value;" value="GO">
<option value="photog_main.php?pmode=add&img_x=1" >1</option>
<option value="photog_main.php?pmode=add&img_x=3" >3</option>
<option value="photog_main.php?pmode=add&img_x=5" >5</option>
</select> at a time<br /></i></b><br />    
Select Image:<br />
    <input type="file" name="image[]" style="width: 300px;"> Image:1<br /><br />
    <input type="file" name="image[]" style="width: 300px;"> Image:2<br /><br />
        <input type="file" name="image[]" style="width: 300px;"> Image:3<br /><br />
Title:<br />
<input type="text" name="title" style="width: 300px;"><br /><br />
Description:<br />
<textarea type="file" name="description" style="width: 300px;"></textarea><br /><br />
Keywords: (Separate with a comma ",")<br />
<textarea type="file" name="keywords" style="width: 300px;"></textarea><br /><br /><br />
Price: <small>(Do not include $, leave at 1.00)</small><br />
<input type="text" name="price1" style="width: 100px;" value="1.00" readonly><br /><br />
Main Category:<br>
<select name="gallery_id" style="font-size: 11; width: 300px; border: 1px solid #000000;">
<option value="0">None</option>
<option value="61">2D/Vectors</option><option value="52">Abstract</option><option value="29">Animals & Insects</option><option 

value="30">Architecture</option><option value="31">Arts & Music</option><option value="32">Backgrounds</option><option 

value="70">Ecommerce/Finance</option><option value="96">Editorial</option><option value="55">Education</option>                        

</select><br /><br />
Also show this photo in these categories:<br>
<select multiple="multiple" size="15" name="other_galleries[]" style="font-size: 11; width: 300px; border: 1px solid #000000;">
<option value="0">None</option>
<option value="61">2D/Vectors</option><option value="52">Abstract</option><option value="29">Animals & Insects</option><option 

value="30">Architecture</option><option value="31">Arts & Music</option><option value="32">Backgrounds</option>                            

</select><br /><br />
<input type="submit" value="Upload"> <br /><br /><font color="#ff0000">                                                

</form>

мне необходимо чтобы через инди выполнить этот запрос.
просто делая это:
Код

  ListPost:=TStringList.Create;
  ListPost.Add('reference=photo_package');
  ListPost.Add('file_path=');
  ListPost.Add('image_path=stock_photos/');
  ListPost.Add('active=0');
  ListPost.Add('mass_upload=photog_main.php?pmode=add&img_x=3');
  ListPost.Add('image[]=D:\Image\Img1.JPG');
  ListPost.Add('image[]=D:\Image\img2.JPG');
  ListPost.Add('image[]=D:\Image\img3.jpg');
  ListPost.Add('title=Test111222333');
  ListPost.Add('description=descTEST');
  ListPost.Add('keywords=descTEST');
  ListPost.Add('price1=1.00');
  ListPost.Add('gallery_id=3');
  ListPost.Add('other_galleries[]=6');

  ListPost.Text := IdHTTP1.Post('.... /ps_action.php?pmode=add_photo',ListPost);


не очень получается...
Как это нужно делать?


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
_hunter
Дата 22.3.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Matematik
Дата 22.3.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Код

var d:TIdMultiPartFormDataStream;
{...}
d := TIdMultiPartFormDataStream.Create;
try
  d.AddFormField('field1', 'data1'#13#10'123');
  d.AddFormField('field2', 'data2');
  d.AddFile('file1', 'c:\boot.ini', '');
  idhttp1.Post('http://localhost/test_post.php', d);
finally
  d.Free;
end;

PM MAIL WWW ICQ   Вверх
Teran
Дата 22.3.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Цитата(_hunter @  22.3.2007,  14:26 Найти цитируемый пост)
это нужно делать так: берем любой сниффер и смотрим как отправку делает браузер. потом методом последовательных итераций подгоняем свой запрос под вид запроса браузера. 
 в том то идело что непойму даже ка браузер это делает - вот что снифер выдал..:
Код

POST /ps_action.php?pmode=add_photo HTTP/1.1
Host: www.test.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=8c06b1d7e04b3a44372294898ef5d984; __utma=137416050.237281971.1174553841.1174553841.1174553841.1; __utmb=137416050; __utmc=137416050; __utmz=137416050.1174553841.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
i/r

Content-Type: multipart/form-data; boundary=---------------------------24978232764556
 r

Content-Length: 10069

-----------------------------24978232764556
Content-Disposition: form-data; name="reference"

photo_package
-----------------------------24978232764556
Content-Disposition: form-data; name="file_path"


-----------------------------24978232764556
Content-Disposition: form-data; name="image_path"

stock_photos/
-----------------------------24978232764556
Content-Disposition: form-data; name="active"

0
-----------------------------24978232764556
Content-Disposition: form-data; name="mass_upload"

photog_main.php?pmode=add&img_x=1
-----------------------------24978232764556
Content-Disposition: form-data; name="image[]"; filename=""
Content-Type: application/octet-stream


-----------------------------24978232764556
Content-Disposition: form-data; name="image[]"; filename="ImgButtonActiveX1.JPG"
Content-Type: image/jpeg

v

ÿØÿà

-----------------------------24978232764556
Content-Disposition: form-data; name="image[]"; filename="imgGeneralSettings.JPG"
Content-Type: image/jpeg

ÿÀº

ÿØÿà

‰ž#óDEtb?!ÏR+ ð¡»µÐm-µKÕ¸½ ž¹*;)=ÈÏ_ç\„Z•´í¨[I#ÜÏœçÌ!‹å¤9#'ÛùcFÞYŒ6cH„ bAœ°*WvSµ¬ŽöŠÊÓï­‚�/v‚XóEib.x÷Š´ûŸ
üJÏ ›k—i!òÙ‘¥f9Úr¤rG@=ë´Ô§�Å:l°Epb™“cH§# äê9 ý)ž*ð޵âA$—*4�¡UÕ?0/?^ìÄuúg�ƒ§qàØmã    ¤ÝvÅ"¨•Ëm'•ÛØsÜç­F¥éc;EÓdÒl 73¬¸êF@ýkZÓà w»K¹íŒñ?U@Èe' ;Ž0*�÷†õçÓ®MµÕ©¸
­ DðNÜ2xÇR3ßÒº½
Û}ÎE¢7iY<¯»ÇAùb©+"7e‹;(l`ò¡@%˜ã–cÔŸz*Å †[hå9b߃Uf³‡8ÛE<6±EÈ>õ`

-----------------------------24978232764556
Content-Disposition: form-data; name="image[]"; filename="imgEventLogs.jpg"
Content-Type: image/jpeg

²
ÿØÿà

-----------------------------24978232764556
Content-Disposition: form-data; name="image[]"; filename=""
Content-Type: application/octet-stream
.....................................................
.....................................
....................



Это сообщение отредактировал(а) Teran - 22.3.2007, 17:12


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
_hunter
Дата 22.3.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



ну и что тут непонятного? идут мультипартные данные, каждый кусок разделен boundary. в коце запроса идет boundary--. все...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Teran
Дата 22.3.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Цитата(_hunter @  22.3.2007,  14:44 Найти цитируемый пост)
ну и что тут непонятного? идут мультипартные данные, каждый кусок разделен boundary. в коце запроса идет boundary--. все... 
 можеш небольшой примерчик кинуть... по моему запросу...



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Teran
Дата 22.3.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Вот тут какоето несоответствие в запрозах:
Мой:
Код

----------------------------------------------SEND(904)----------------------------------------------
POST /ps_action.php?pmode=add_photo HTTP/1.0
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------032207154510835
Content-Length: 5542
Host: www.Test.com
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Cookie: PHPSESSID=6f6ac437d1e8116d5210422ed244a5a8

----------032207154510835
Content-Disposition: form-data; name="reference"

photo_package
----------032207154510835
Content-Disposition: form-data; name="file_path"

----------032207154510835
Content-Disposition: form-data; name="image_path"

stock_photos/
----------032207154510835
Content-Disposition: form-data; name="active"

0
----------032207154510835
Content-Disposition: form-data; name="mass_upload"

photog_main.php?pmode=add&img_x=3
----------032207154510835
Content-Disposition: form-data; name="image[]"; filename="c:\imgAllert.JPG"
Content-Type: 

ÿØÿà
----------------------------------------------RECV(904)----------------------------------------------
HTTP/1.1 302 Found
Date: Thu, 22 Mar 2007 13:45:14 GMT
Server: Apache
X-Powered-By: PHP/4.4.3
Cache-Control: private, max-age=16800, pre-check=16800
Last-Modified: Fri, 26 Jan 2007 22:21:32 GMT
location: photog_main.php?pmode=added
Connection: close
Content-Type: text/html

715^

----------------------------------------------SEND(904)----------------------------------------------
POST /photog_main.php?pmode=added HTTP/1.0
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------032207154510835
Content-Length: 5542
Host: www.test.com
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Cookie: PHPSESSID=6f6ac437d1e8116d5210422ed244a5a8


^
----------032207154510835
Content-Disposition: form-data; name="reference"

photo_package
----------032207154510835
Content-Disposition: form-data; name="file_path"

----------032207154510835
Content-Disposition: form-data; name="image_path"

stock_photos/
----------032207154510835
Content-Disposition: form-data; name="active"

0
----------032207154510835
Content-Disposition: form-data; name="mass_upload"

photog_main.php?pmode=add&img_x=3
----------032207154510835
Content-Disposition: form-data; name="image[]"; filename="c:\imgAllert.JPG"
Content-Type: 

ÿØÿà
----------------------------------------------RECV(904)----------------------------------------------
HTTP/1.1 200 OK
Date: Thu, 22 Mar 2007 13:45:17 GMT
Server: Apache
X-Powered-By: PHP/4.4.3
Cache-Control: no-cache, must-revalidate
Last-Modified: Tue, 30 Jan 2007 01:16:52 GMT
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Connection: close
Content-Type: text/html
...................................
.......................
.............

а вто браузера:
Код

----------------------------------------------SEND(4076)----------------------------------------------
POST /ps_action.php?pmode=add_photo HTTP/1.1
Host: www.Test.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=8c06b1d7e04b3a44372294898ef5d984; __utma=137416050.237281971.1174553841.1174553841.1174567455.2; __utmb=137416050; __utmc=137416050; __utmz=137416050.1174553841.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)


Content-Type: multipart/form-data; boundary=---------------------------18688821631633
 
Content-Length: 5827

-----------------------------18688821631633
Content-Disposition: form-data; name="reference"

photo_package
-----------------------------18688821631633
Content-Disposition: form-data; name="file_path"


-----------------------------18688821631633
Content-Disposition: form-data; name="image_path"

stock_photos/
-----------------------------18688821631633
Content-Disposition: form-data; name="active"

0
-----------------------------18688821631633
Content-Disposition: form-data; name="mass_upload"

photog_main.php?pmode=add&img_x=3
-----------------------------18688821631633
Content-Disposition: form-data; name="image[]"; filename="imgAllert.JPG"
Content-Type: image/jpeg

28j
ÿØÿà

-----------------------------18688821631633
Content-Disposition: form-data; name="image[]"; filename="ImgButtonActiveX1.JPG"
Content-Type: image/jpeg

2ÿÀ²
ÿØÿà
¿Ý÷#™sÁ¢âÞÝ9 ‡iê+›“_¾†W‰fGTb¡™,5ÖÜèÀ©ùrk?½O*úâ<}ÉYzúrŒ9SBçw=†Œ
(®@aFPFPFPFPFPFPFP^M«¯üN¯ÿ

-----------------------------18688821631633
Content-Disposition: form-data; name="image[]"; filename="ImgButtonActiveX.JPG"
Content-Type: image/jpeg

&
ÿØÿà

-----------------------------18688821631633
Content-Disposition: form-data; name="title"

TitleTest
-----------------------------18688821631633
Content-Disposition: form-data; name="description"

DescTest
-----------------------------18688821631633
Content-Disposition: form-data; name="keywords"

keyTest
-----------------------------18688821631633
Content-Disposition: form-data; name="price1"

1.00
-----------------------------18688821631633
Content-Disposition: form-data; name="gallery_id"

61
-----------------------------18688821631633
Content-Disposition: form-data; name="other_galleries[]"

52
-----------------------------18688821631633--
Wæ

----------------------------------------------RECV(4076)----------------------------------------------
HTTP/1.1 302 Found
Date: Thu, 22 Mar 2007 13:31:44 GMT
Server: Apache
X-Powered-By: PHP/4.4.3
Cache-Control: private, max-age=16800, pre-check=16800
Last-Modified: Fri, 26 Jan 2007 22:21:32 GMT
location: photog_main.php?pmode=added
Keep-Alive: timeout=35, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
........................................
.................................
.................

в моем запросе почемуто путь к файлу полный идет а у браузера - только название файла...
вот мой код:
Код

var
  ListPost1:TIdMultiPartFormDataStream;
.....
begin
ListPost1 := TIdMultiPartFormDataStream.Create;

  ListPost1.AddFormField('reference','photo_package');
  ListPost1.AddFormField('file_path','');
  ListPost1.AddFormField('image_path','stock_photos/');
  ListPost1.AddFormField('active','0');
  ListPost1.AddFormField('mass_upload','photog_main.php?pmode=add&img_x=3');
  ListPost1.AddFile('image[]','c:\imgAllert.JPG', '');
  ListPost1.AddFile('image[]','c:\ImgButtonActiveX1.JPG', '');
  ListPost1.AddFile('image[]','c:\ImgButtonActiveX.JPG', '');
  ListPost1.AddFormField('title','Test111222333');
  ListPost1.AddFormField('description','descTEST');
  ListPost1.AddFormField('keywords','keyTEST');
  ListPost1.AddFormField('price1','1.00');
  ListPost1.AddFormField('gallery_id','61');
  ListPost1.AddFormField('other_galleries[]','52');

  ListPost.Text := IdHTTP1.Post('/ps_action.php?pmode=add_photo',ListPost1);
  ......................



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
ishimcity
Дата 19.1.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 1.6.2007
Где: Тюменская область . Ишим

Репутация: нет
Всего: 1



Ребята столкнулся с той же проблемой,если вопрос решили дайте знать ,век незабуду.спасибо
PM MAIL ICQ Skype YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.