![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запостить файл? [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