Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как запостить файл?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
15-1145185830
Варяг
2006-04-16 15:10
2006.05.21
Case технологии


2-1146731925
49 Cent
2006-05-04 12:38
2006.05.21
Как удалить все компоненты сделанные в Run time


2-1146511238
Glex
2006-05-01 23:20
2006.05.21
Как считать строку из typed файла?


2-1146937202
Неуч
2006-05-06 21:40
2006.05.21
Типы данных


3-1143446809
Николай_Москва
2006-03-27 12:06
2006.05.21
Создание фиктивного столбца, связанного с существуюшим столбцом