Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как запостить файл? [D6, WinXP]


oleg_ ©   (2006-01-07 01:28:00) 

Для отправки запроса серверу и получения ответа использую idhttp.  Передать строковые параметры получается, а вот как залить файл на вход скрипта пока не нашел.

Можно ли это сделать штатными средствами idhttp или надо формировать все содержимое запроса самому?


Плохиш   (2006-01-25 13:13:00) [1]

idHTTP + F1
Properties
AllowCookies/CookieManager
и читать, читать, читать.


MetalFan   (2006-01-25 12:56:00) [2]

а как использовать куки в контексте данной задачи?


Плохиш   (2006-01-11 12:06:00) [3]


> oleg_   (09.01.06 23:40) [10]

Для этого используются куки.


Slym   (2006-01-11 09:52:00) [4]

IDMultipartFormData - это юнит в котором описан TIdMultiPartFormDataStream  - его и пользуй


oleg_   (2006-01-09 23:40:00) [5]

Вот натолкнулся на еще один трабл.
Несколько запросов к php скриптам у меня работают с общими данными через сессию при использовании обычного эксплорера. При этом сессия цепляется к конкретному экзепляру броузера.
В случае работы из Delphi  с idhttp запросы конечно выполняются без поддержки сессий php.
Как можно удержать сессию за экземпляром  Дельфевой программы? idtcpclient решит вопрос если будет оставаться подключенным?


Reindeer Moss Eater   (2006-01-09 01:51:00) [6]

Более логичный способ - взять более свежую версию. Где есть IDMultipartFormData


oleg_   (2006-01-08 02:48:00) [7]

Да, так все работает, но ИМХО должен быть более логичный способ ...


oleg_   (2006-01-08 02:13:00) [8]

Через поток или через tstrings не важно я могу залить нечто такое (что будет  эвивалентно посту из реальной формы):

-----------------------------7d68c28e048c
Content-Disposition: form-data; name="userfile"; filename="C:\1.txt"
Content-Type: text/plain

это содержимое заливаемого файла
-----------------------------7d68c28e048c--


то есть параметры  и само содержимое файла, видимо так и сделаю...


Eraser   (2006-01-08 01:45:00) [9]


> oleg_   (08.01.06 00:11) [5]


> У меня на вход  post подается tstrings или tsreamсодержащие
> строковые параметры. В справке увы так и не нашел как туда
> запихать файл

Так TStream'ом может являться и TFileStream, вот его и "запихивай" туда.


oleg_   (2006-01-08 00:11:00) [10]

>Eraser ©
У меня на вход  post подается tstrings или tsream содержащие строковые параметры. В справке увы так и не нашел как туда запихать файл.

а если формировать запрос вручную, откуда взять boundary?

>Slym ©
В Delphi6 professional IDMultipartFormData нет, видимо нужна более новая версия инди...


Slym   (2006-01-07 11:47:00) [11]

IDMultipartFormData


Eraser   (2006-01-07 02:23:00) [12]


> oleg_   (07.01.06 02:16) [2]

Прошу прощения! Эт я рождество наотмечался и попутал с FTP ;-)

По сабжу:
впринципе нет ничего полохого, если сформировать запрос вручную, ничего сложного там нет, см. соответсвующий RFC.
И опять же у компонента TidHTTP есть аж 6 имплементаций метода Post.


oleg_   (2006-01-07 02:16:00) [13]

ftp не подходит (поднять ftp серв., лить на него файлы с уникальными именами и тут же вызывать скрипт,  передавая ему имя файла -слишком криво получится)

Любой броузер позволяет указать в соотв. поле формы некий файл и используя запрос типа post отправить скрипту содержимое того файла. Собственно  это и пытаюсь повторить используя idhttp.


Eraser   (2006-01-07 02:07:00) [14]


> oleg_   (07.01.06 01:28)

TIdFTP.Put


Наверх

Титульная страница Поиск, карта сайта Написать письмо