Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка фала на сервер, Увеличенный размер отправляемого файла 
V
    Опции темы
panik
Дата 17.1.2010, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Несколько дней уже бьюсь над отправкой файла на сервер.

На сервер приходит файл на 2 байта больше, чем исходный. В конец файла добавляется Enter (перенос каретки).
Может кто знает в чем проблема?

Вот код:
Код

procedure TForm1.Button4Click(Sender: TObject);
    var formData: TIdMultiPartFormDataStream;

begin

formData := TIdMultiPartFormDataStream.Create;

   try

    IdHTTP1 := TidHttp.Create(nil);
   
    formData.AddFormField('FilePart-BeginPosition','0');
    formData.AddFormField('FilePart-EndPosition','5');
    formData.AddFile('file', 'proba1.txt', 'multipart/form-data');
    IdHTTP1.HandleRedirects := True;
    
    IdHTTP1.Request.BasicAuthentication:=true;
    IdHTTP1.Request.Username:='***';
    IdHTTP1.Request.Password:='***';


  IdHTTP1.Request.UserAgent:='Indy';
  IdHTTP1.Request.Accept:='*/*';
  IdHTTP1.Request.Connection:='';
  IdHTTP1.Request.CacheControl:='no-store,no-cache';
  IdHTTP1.Request.Pragma:='no-cache';


   Memo1.text:=IdHTTP1.Post('имя сервера', formData);

   finally
    begin
          IdHTTP1.free;
          formData.Free;
    end;
  end;

end;


Это сообщение отредактировал(а) panik - 17.1.2010, 17:40
PM MAIL   Вверх
panik
Дата 17.1.2010, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Разобрался!

В самой причине добавления не разобрался, но решил проблему.
Добавил передачу пустой переменной после передачи файла.

Код

formData.AddFile('file', 'proba1.txt', 'multipart/form-data');

formData.AddFormField('','');


В сниффере это выглядит так:
Плохой вариант (добавляется Enter):
Код

----------011610040028527
Content-Disposition: form-data; name="FilePart-BeginPosition"

0
----------011610040028527
Content-Disposition: form-data; name="FilePart-EndPosition"

129
----------011610040028527
Content-Disposition: form-data; name="file"; filename="proba1.txt"
Content-Type: multipart/form-data

Удалось отправить! =)
До этого бился двое суток..два лишних байта в конец файла прибавлялось..
Пришлось пойти обманным путем =)
<----- Ненужный Enter здесь. ------
----------011610040028527



Хороший вариант:
Код

----------011710170046445
Content-Disposition: form-data; name="FilePart-BeginPosition"

0
----------011710170046445
Content-Disposition: form-data; name="FilePart-EndPosition"

129
----------011710170046445
Content-Disposition: form-data; name="file"; filename="proba1.txt"
Content-Type: multipart/form-data

Удалось отправить! =)
До этого бился двое суток..два лишних байта в конец файла прибавлялось..
Пришлось пойти обманным путем =)
----------011710170046445
Content-Disposition: form-data; name=""

<----- Теперь этот ненужный Enter здесь. И на данные файла не влияет.
----------011710170046445--


Это сообщение отредактировал(а) panik - 17.1.2010, 18:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.