Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

TIdMultiPartFormDataStream AddFile проблема !   Найти похожие ветки 

 
vedm   (2006-09-09 10:11) [0]

Здраствуйте!
Передаю файл на сервер методом пост:

filename := "C:\Тест\file.rar";
...
data.AddFile("file",filename,"FILE");  // multipart/form-data  тоже пробовал
...
retr := IdHTTP1.Post("http://server.ru/post.php",data)
...

Но возникает такая проблема. Все прекрасно передается только тогда, когда в filename (пути к файлу) отсутствуют русский символы (например filename := "C:\Temp\file.rar"; ) , когда же есть русский, то файл не передается на сервер.

Подскажите как быть.


 
Dmitrij_K   (2006-09-09 11:03) [1]


> когда же есть русский, то файл не передается на сервер.

С чего такая уверенность? Как проверял?


 
vedm   (2006-09-09 16:17) [2]

проверял след образом. пробовал файл расположенный в C:\Temp\file.rar - все прекрасно залилось, пробую файл C:\Тест\файл.rar , скрипт сервера отвечает ошибкой - "возможно файл не был передан".

снифер выдает следуещее при пути без русских символов:

send

POST /cgi/upload.cgi.php?426e2d25508a6593b69b80f2dc574a1e HTTP/1.0
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------090906160936125
Content-Length: 13912
Host: server.ru
Accept: text/html, */*
Accept-Charset: windows-1251
Accept-Encoding: windows-1251
Referer: http://server.ru
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Cookie: sid=426e2d25508a6593b69b80f2dc574a1

send

----------090906160936125
Content-Disposition: form-data; name="fl1"; filename="C:\Text Document.htm"
Content-Type: FILE

<тут содержание файла>............ .........

recv

HTTP/1.1 302 Found..   ( далее нас редиректят и говорят все ок ! )

теперь пробуем закачать с русскими символами:

send

GET / HTTP/1.1
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------090906160936125
Host: rapidshare.ru
Accept: text/html, */*
Accept-Charset: windows-1251
Accept-Encoding: windows-1251
Referer: http://server.ru
User-Agent: Mozilla/3.0 (compatible; Indy Library)

recv

HTTP/1.1 200 OK
Date: Sat, 09 Sep 2006 12:14:32 GMT
Server: Apache
Set-Cookie: sid=56f2c50eb1a2b431790caf1b6114adf5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: sid=f5e5475fc79e59fb4ed187c7828b79fa; path=/
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

20cb..<html>.<head>.... далее хтмлка с ошибкой

как видим само тело файла по каким то причинам не отсылается :(((


 
vedm   (2006-09-09 16:24) [3]

наврал наврал ^_^

ПОСЫЛАЕМ ФАЙЛ С РУССКИМИ БУКВАМИ:

POST /cgi/upload.cgi.php?0d39ef766c062482817c76cbf6a7d841 HTTP/1.0
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------090906162053875
Content-Length: 13917
Host: server.ru
Accept: text/html, */*
Accept-Charset: windows-1251
Accept-Encoding: windows-1251
Referer: http://server.ru
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Cookie: sid=0d39ef766c062482817c76cbf6a7d841

----------090906162053875
Content-Disposition: form-data; name="fl1"; filename="C:\....\Text Document.htm"
Content-Type: FILE

<html>..<head>..тут пошло содержание файла

как видим вместо папки C:\Тест\Text Document.htm  имеем C:\....\Text Document.htm
после такого запроса нас кидают на ошибку ... хотя тело файла передается ... хм хз.


 
Dmitrij_K   (2006-09-09 16:46) [4]

У меня шлет
send

POST /test.php HTTP/1.0
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------090906164501703
Content-Length: 1080
Host: 127.0.0.1
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)

----------090906164501703
Content-Disposition: form-data; name="file1"; filename="C:\Тест\Text Document.htm"
Content-Type: text/html
Content-Transfer-Encoding: binary

тут данные
----------090906164501703--


ответ php скрипта

HTTP/1.1 200 OK
Date: Sat, 09 Sep 2006 12:45:02 GMT
Server: Apache/1.3.33 (Win32) PHP/5.0.5
X-Powered-By: PHP/5.0.5
Connection: close
Content-Type: text/plain

Array
(
   [file1] => Array
       (
           [name] => Text Document.htm
           [type] => text/html
           [tmp_name] => C:\WINDOWS\TEMP\php750.tmp
           [error] => 0
           [size] => 876
       )

)


 
Dmitrij_K   (2006-09-09 16:47) [5]

тут исход http://slil.ru/23102233


 
Орион ©   (2006-09-09 18:05) [6]

значит дело в серваке.


 
vedm   (2006-09-09 21:59) [7]

дело в том, что при заливке через форму через браузер все прекрасно работает с любыми файлами


 
Dmitrij_K   (2006-09-09 23:03) [8]

я даже не знаю
в моем простом примере имя файла передается полностью

> Орион ©   (09.09.06 18:05) [6]
> значит дело в серваке.

мне тоже так кажется


 
Dmitrij_K   (2006-09-09 23:08) [9]


> как видим вместо папки C:\Тест\Text Document.htm  имеем
> C:\....\Text Document.htm

В исходнике Indy 9 не нашел такого действия.Отсюда делаю вывод что ты сам довабляешь AddFile("fl1", "C":\....\Text Document.htm", "")
ищи ошибки в коде



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
15-1169304400
vidiv
2007-01-20 17:46
2007.02.11
Не нравится


3-1164007936
SLP
2006-11-20 10:32
2007.02.11
Сводная таблица в Excel


15-1169025265
Курдль
2007-01-17 12:14
2007.02.11
Как определить подлинность швейцарских часов недорогого класса?


1-1166611677
DinoRay
2006-12-20 13:47
2007.02.11
TreeView Drag&amp;Drop непонятки


3-1163846329
PEAKTOP
2006-11-18 13:38
2007.02.11
Создание внешнего ключа - глюк ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский