Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
2-1146558709
Max4
2006-05-02 12:31
2006.05.21
Дата Время создания файла


2-1146575748
Der Nechk@ssoff
2006-05-02 17:15
2006.05.21
Перехват и скриншот


2-1146420911
MVP
2006-04-30 22:15
2006.05.21
Как сделать цикл по Edit


15-1145185830
Варяг
2006-04-16 15:10
2006.05.21
Case технологии


2-1146922436
ДЯМАК
2006-05-06 17:33
2006.05.21
Дана матрица





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский