![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy передать файл на сервер [D6, XP]
Евгений07 © (2011-10-11 14:43:00)Доброго времени!
Не могу записать файл на сервер в ПХП скрипт
http: TIdHTTP;
....
formData := TAqMultipartFormDataStream.Create;
formData.AddFile('File','MyFile.jpg','image/jpeg');
....
http.Post(s1, formData, Response);
Скрипт = Response = выдает ошибку нет имени файла
Notice: Undefined index: filename in C:\apache\Tefff.ru\www\adm1.php
on line3
Array
(
)
Переменные заголовка от скрипта
Host: Tefff.ru <br />
Accept: text/html, */* <br />
User-Agent: Mozilla/3.0 (compatible; Indy Library) <br />
Content-Length: 29333 <br />
Вывел содержимое потока formData
----------101111123401163
Content-Disposition: form-data; name="File"; filename="MyFile.jpg"
Content-Type: image/jpeg
// здесь содержимое файла, размером = 29181
----------101111123401163--
По идее нет
Content-Type: multipart/form-data;
boundary=----------101111123401163
Медвежонок Пятачок (2011-10-13 12:19:00) [1]php простейший, из хтмл все грузит
Хром+Ctrl+Shift+J->Network и смотреть, смотреть, смотреть....
Плохиш (2011-10-13 12:16:00) [2]
> Зачем они там - не понятно
Для собирания строк с помощью функций форматирования.
PS. Поменял генофонд - жди следующих граблей.
Евгений07 (2011-10-13 11:53:00) [3]Ответ:
в IdMultipartFormData в константах
sContentDisposition = 'Content-Disposition: form-data; name="%s"';
sFileNamePlaceHolder = '; filename="%s"';
sContentTypePlaceHolder = 'Content-Type: %s' + crlf + crlf;
убрал "%s и %s
Зачем они там - не понятно
Вопрос закрыт
Cobalt (2011-10-13 10:20:00) [4]?
TIdHTTP.Request.ContentType:='multipart/form-data'
Евгений07 (2011-10-12 23:00:00) [5]Вопрос кипит
Поставил Дельфи 7 с Инди 9
Ошибка та же ПХП скрипт не ловит мою картинку
Код примера, упрощенный:
formData := TIdMultipartFormDataStream.Create;
formData.AddFormField('FileName2', 'йцукен');
formData.AddFile('File','gel.jpg','application/octet-stream');
formData.AddFormField('FileName1', '');
formData.AddFormField('FileName3', '');
response := idHTTP1.Post(' http://Tefff.ru/cgi/Teffi.exe', formData);
Ловлю на выходе тело РОST
----------101211220306968
Content-Disposition: form-data; name="%s"FileName2"
йцукен
----------101211220306968
Content-Disposition: form-data; name="%s"File"; filename="%s"gel.jpg"
Content-Type: %s
application/octet-stream
Content.LengthJpg 2665 это мое
#### это мое
255, 216, 255, 224, 0, 16, 74, 70 и дальше . . .
Начало последней записи смахивает на jpg (мое представление о нем)
+
Картинки из ЕХЕ скрипта я ловил через
Request.Files.Items[№]
Request.Files.Count
Request.Files.Items[№].FieldName;
Request.Files.Items[№].FieldName;
Request.Files.Items[№].Stream
Попытка записать Request.Files.Count приводит к ошибке 500 сервера
Тут похоже нарушена структура тела РОST
1. Где можно посмотреть описание структуры тела РОST
2. Что можно исправить = почему у всего инета эта простейшая комбинация идет , а у меня нет??
Евгений07 (2011-10-11 20:11:00) [6]404 - File or directory not found.
Вопрос по существующему коду:
Должен ли быть в заголовке НТТМ
Content-Type: multipart/form-data;
boundary=----------101111123401163
Anatoly Podgoretsky (2011-10-11 19:08:00) [7]> Евгений07 (11.10.2011 18:19:03) [3]
http://nevrona.com/products/index.html
Евгений07 (2011-10-11 18:19:00) [8]У меня TAqMultipartFormDataStream не было, скачал
Ссылку на рабочую Инди под Дельфи 6 не дадите?
Пример на ИндиКлиент в Дельфи не работает по загрузке = ошибка 405?
Евгений07 (2011-10-11 18:14:00) [9]php простейший, из хтмл все грузит
stas (2011-10-11 16:07:00) [10]Проблема в самом php