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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 16:21   #1
prey2009
 
Регистрация: 21.05.2011
Сообщений: 8
По умолчанию Проблема с TIdMultipartFormData

Возникла такая проблема: сделал загрузчик файлов на RGhost.ru, все работало нормально. Но в этом же проекте мне понадобилось отправлять в MultiPartFormData русские символы, для этого я обновил Indy до версии 10.5.7. После обновления загрузка на RGhost перестала работать, сниффер выдает ошибку 500 при отправке файла. Причем ранее скомпилированная программа (до обновления Indy) прекрасно работает. В чем может быть проблема? Вот код:
Код:
function TForm1.Parse(str, str2, src: String): String;
begin
  Delete(src, 1, Pos(str,src)+Length(str)-1);
  Delete(src, Pos(str2,src), Length(src));
  Result:=src;
end;
....................
procedure UploadRghost(Filename: String);
 var
  authenticity_token, s: String;
  i: Integer;
  FormData: TIdMultiPartFormDataStream;
  IdHTTP: TIdHTTP;
 begin
    IdHTTP:=TIdHTTP.Create;
    s:=IdHTTP.Get('http://rghost.ru/');
    authenticity_token:=Form1.parse('name="csrf-token" content="', '"/>', s);
    s:='http://'+Form1.parse('<form accept-charset="UTF-8" action="http://', '" enctype', s);
    FormData := TIdMultiPartFormDataStream.Create;
    FormData.AddFormField('utf8', '?');
    FormData.AddFormField('authenticity_token', authenticity_token);
    FormData.AddFile('file', Filename, 'multipart/form-data');
    FormData.AddFormField('commit', 'Отправить');
   try
    IdHTTP.Post(s, FormData);
   except
    Form1.LogList.LoadFromFile('log.txt');
    Form1.LogList.Add(IdHTTP.Response.Location+' '+ExtractFilename(Filename));
    Form1.LogList.SaveToFile('log.txt');
   end;
  FormData.Free;
  IdHTTP.Free;
end;
prey2009 вне форума Ответить с цитированием
Старый 01.11.2011, 17:03   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

ошибку кажет только для русских символов или вообще?
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 01.11.2011, 17:09   #3
prey2009
 
Регистрация: 21.05.2011
Сообщений: 8
По умолчанию

Для всего.
prey2009 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37