Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2012, 20:05   #1
droltromed
 
Регистрация: 21.01.2012
Сообщений: 8
Сообщение Indy. Залить на файлообменник с названием файла в utf-8

Доброе время суток.
Хочу залить файл с кириллицей в названии через Indy 9 Delphi 7 на файлообменник, использующий кодировку utf-8. При заливке через браузер POST запрос ловится как:
Код:
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Content-Length: 561
Content-Type: multipart/form-data; boundary=----------jUNIryFulenHvKYyC9J76N

------------jUNIryFulenHvKYyC9J76N
Content-Disposition: form-data; name="MAX_FILE_SIZE"

2044723200
------------jUNIryFulenHvKYyC9J76N
Content-Disposition: form-data; name="notemplate"

yes
------------jUNIryFulenHvKYyC9J76N
Content-Disposition: form-data; name="upfile"; filename="файл.txt"
Content-Type: text/plain
Где файл.txt собственно название файла.
А вот результат заливки через инди:
Код:
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------012112220150593
Content-Length: 440
Accept: text/html, */*
Accept-Charset: utf-8
User-Agent: Mozilla/3.0 (compatible; Indy Library)

----------012112220150593
Content-Disposition: form-data; name="MAX_FILE_SIZE"

2044723200
----------012112220150593
Content-Disposition: form-data; name="notemplate"

yes
----------012112220150593
Content-Disposition: form-data; name="upfile"; filename="G:\файл.txt"
Content-Type: application/octet-stream
Сам код отправки:
Код:
MultiData:=TIdMultiPartFormDataStream.Create;
  MultiData.AddFormField('MAX_FILE_SIZE','2044723200');
  MultiData.AddFormField('notemplate','yes');
  MultiData.AddFile('upfile',listbox1.items[i],'application/octet-stream');
  if edit1.Text<>'' then MultiData.AddFormField('password',ansitoutf8(edit1.Text));
  MultiData.AddFormField('keep-days',inttostr(trackbar1.Position+1));
  idhttp1.Request.AcceptCharSet:='utf-8';
  html:=IdHTTP1.Post('http://сайт/upload?ID='+inttostr(random(123)),MultiData);
Как я понял нужно из "G:\файл.txt" каким-то образом получить "файл.txt", напрямую поменять нельзя, будет ругаться на не найденный файл, подумывал загнать файл в строку для заливки, но если файл будет весить 100+ мб, долго загонять будет.
Если оставить отправку как "файл.txt", то при скачке название файла пустое, нажимаю скачать, файл качается с кучей цифр в названии и без расширения, как я понял оно просто генерируется сервером. Как быть?

Последний раз редактировалось droltromed; 21.01.2012 в 20:44. Причина: Мелкие ошибки
droltromed вне форума Ответить с цитированием
Старый 22.01.2012, 19:42   #2
droltromed
 
Регистрация: 21.01.2012
Сообщений: 8
По умолчанию

Перенесите в этот раздел http://programmersforum.ru/forumdisplay.php?f=3
Думаю тут больше по разделу подходит.
droltromed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение файла в UTF-8(без BOM) Cats_foot Visual C++ 10 06.12.2011 17:27
Залить файл на файлообменник UnD)eaD)Snake Работа с сетью в Delphi 11 08.06.2010 16:47
Отправка файла на файлообменник W0LF Работа с сетью в Delphi 18 17.01.2010 16:12
Excel VBA, Экспорт в txt, кодировка файла UTF-16 LE/UCS-2 Little Endian+еще один интересный вопрос Maxximus Microsoft Office Excel 17 04.09.2009 20:03
Проверка на сущестование файла с названием из русских символов evgenrpo Win Api 6 10.06.2009 09:34