Форум: "Сети";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизКак запостить файл? Найти похожие ветки
← →
oleg_ (2006-01-07 01:28) [0]Для отправки запроса серверу и получения ответа использую idhttp. Передать строковые параметры получается, а вот как залить файл на вход скрипта пока не нашел.
Можно ли это сделать штатными средствами idhttp или надо формировать все содержимое запроса самому?
← →
Eraser © (2006-01-07 02:07) [1]
> oleg_ (07.01.06 01:28)
TIdFTP.Put
← →
oleg_ (2006-01-07 02:16) [2]ftp не подходит (поднять ftp серв., лить на него файлы с уникальными именами и тут же вызывать скрипт, передавая ему имя файла -слишком криво получится)
Любой броузер позволяет указать в соотв. поле формы некий файл и используя запрос типа post отправить скрипту содержимое того файла. Собственно это и пытаюсь повторить используя idhttp.
← →
Eraser © (2006-01-07 02:23) [3]
> oleg_ (07.01.06 02:16) [2]
Прошу прощения! Эт я рождество наотмечался и попутал с FTP ;-)
По сабжу:
впринципе нет ничего полохого, если сформировать запрос вручную, ничего сложного там нет, см. соответсвующий RFC.
И опять же у компонента TidHTTP есть аж 6 имплементаций метода Post.
← →
Slym © (2006-01-07 11:47) [4]IDMultipartFormData
← →
oleg_ (2006-01-08 00:11) [5]>Eraser ©
У меня на вход post подается tstrings или tsream содержащие строковые параметры. В справке увы так и не нашел как туда запихать файл.
а если формировать запрос вручную, откуда взять boundary?
>Slym ©
В Delphi6 professional IDMultipartFormData нет, видимо нужна более новая версия инди...
← →
Eraser © (2006-01-08 01:45) [6]
> oleg_ (08.01.06 00:11) [5]
> У меня на вход post подается tstrings или tsream содержащие
> строковые параметры. В справке увы так и не нашел как туда
> запихать файл
Так TStream"ом может являться и TFileStream, вот его и "запихивай" туда.
← →
oleg_ (2006-01-08 02:13) [7]Через поток или через tstrings не важно я могу залить нечто такое (что будет эвивалентно посту из реальной формы):
-----------------------------7d68c28e048c
Content-Disposition: form-data; name="userfile"; filename="C:\1.txt"
Content-Type: text/plain
это содержимое заливаемого файла
-----------------------------7d68c28e048c--
то есть параметры и само содержимое файла, видимо так и сделаю...
← →
oleg_ (2006-01-08 02:48) [8]Да, так все работает, но ИМХО должен быть более логичный способ ...
← →
Reindeer Moss Eater © (2006-01-09 01:51) [9]Более логичный способ - взять более свежую версию. Где есть IDMultipartFormData
← →
oleg_ (2006-01-09 23:40) [10]Вот натолкнулся на еще один трабл.
Несколько запросов к php скриптам у меня работают с общими данными через сессию при использовании обычного эксплорера. При этом сессия цепляется к конкретному экзепляру броузера.
В случае работы из Delphi с idhttp запросы конечно выполняются без поддержки сессий php.
Как можно удержать сессию за экземпляром Дельфевой программы? idtcpclient решит вопрос если будет оставаться подключенным?
← →
Slym © (2006-01-11 09:52) [11]IDMultipartFormData - это юнит в котором описан TIdMultiPartFormDataStream - его и пользуй
← →
Плохиш © (2006-01-11 12:06) [12]
> oleg_ (09.01.06 23:40) [10]
Для этого используются куки.
← →
MetalFan © (2006-01-25 12:56) [13]а как использовать куки в контексте данной задачи?
← →
Плохиш © (2006-01-25 13:13) [14]idHTTP + F1
Properties
AllowCookies/CookieManager
и читать, читать, читать.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.052 c