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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2014, 14:34   #1
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию Длинный параметр TIdMultipartFormDataStream

Здравствуйте! Я пишу программу для заливки картинок на сервер через встроеный в DLE загрузчик файлов и изображений, для передачи параметров POST запроса использую TIdMultipartFormDataStream. Получается примерно такое:

Код:
procedure TForm2.btn2Click(Sender: TObject);
var i:Integer;
     data:TIdMultipartFormDataStream;
     recimgload:TStringList;
begin
  data := TIdMultipartFormDataStream.Create;
  recimgload := TStringList.Create;
 
  for i := 0 to FulSource.Count-1 do begin
       if p>0 then begin
          data.AddFormField('news_id','0');
          data.AddFormField('imageurl',imgurl);
          data.AddFormField('ftpurl','');
          data.AddFormField('t_size','450');
          data.AddFormField('t_seite','0');
          data.AddFormField('make_thumb','1');
          data.AddFormField('make_watermark','1');
          data.AddFormField('area','');
          data.AddFormField('author','Admin');
          data.AddFormField('subaction','upload');
 
          recimgload.Text := FixString(IdHTTP1.Post('http://site.ru/engine/ajax/upload.php',data));
 
          if Pos('"success":true', recimgload.Text)>0 then begin
            ShowMessage(ParsC('href=\"', recimgload.Text,'jpg\"'));
          end;
     end;
  end;
end;
В ответ мне приходит "Загружаемый файл пустой, либо к нему невозможно получить доступ".
Сниффер мне показывает:


Тобиш я так понимаю максимальная длина строки 70 т.к перенос идет после 70-го символа, но нафига туда ставится "=" ??? Скажите пожалуйста как исправить это, уже все перепробовал нефига не пашет(
LomoCoder вне форума Ответить с цитированием
Старый 16.02.2014, 16:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
максимальная длина строки 70 т.к перенос идет после 70-го символа
Кто сказал такую чушь? Уверен что туда после равно подставляется перенос строки как-то. Сниффер умеет показывать в 16-тиричном виде?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2014, 08:30   #3
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сниффер умеет показывать в 16-тиричном виде?
ДА, в двух снифферах смотрел
LomoCoder вне форума Ответить с цитированием
Старый 17.02.2014, 09:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И там были символы переноса каретки? О_о
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2014, 12:23   #5
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И там были символы переноса каретки? О_о
Да, но факт в том что ссылка получается ломаная, и серверу передается со знаком =.
LomoCoder вне форума Ответить с цитированием
Старый 17.02.2014, 12:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Проверь себя: вместо FixString() подставь тупо эту строку - будет она с переносами каретки или нет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2014, 17:23   #7
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Все, доперло, нужно писать праметр так:
Код:
data.AddFormField('imageurl','http://site2.net'+imgurl,'utf-8').ContentTransfer := '8bit';;
LomoCoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TIdMultiPartFormDataStream и TMemoryStream greenisius C/C++ Сетевое программирование 2 25.11.2013 08:26
HTTP.Post и TIdMultiPartFormDataStream Shouldercannon Общие вопросы Delphi 0 01.02.2012 14:10
Содержание TIdMultiPartFormDataStream RIO Работа с сетью в Delphi 1 26.11.2010 10:10
bat длинный параметр. the_deer_one Свободное общение 1 29.04.2010 16:56