Delphi indy отправляет неверное значение
Поблем решен
Я загружаю изображение на сайт, но есть проблема с данными с 1 параметром
Params.AddFormField('Filename','Koala.jpg','') ;
Params.AddFormField('upload_type','normal-boxed','') ;
Params.AddFormField('thumbsize','180') ;
Params.AddFormField('adult','1') ;
Params.AddFormField('mmh_user_session',userid) ;
Params.AddFormField('flash', '1','');
Params.AddFormField('private_upload', '0','');
Params.AddFormField('form', 'adult=1&thumbsize=180&tos=on',''); // here is the problem
Params.AddFile('Filedata', 'Koala.jpg','application/octet-stream');
Params.AddFormField('Upload', 'Submit Query','');
значение поля формы отправляется в кодированном виде, и это вызывает проблемы (изображения не загружены)
adult=3D1&thumbsize=3D180&tos=3Don
это должно быть отправлено как
adult=1&thumbsize=180&tos=on
так как я могу остановить инди в кодировании этого значения??
немного больше информации
form4.IdHTTP1.AllowCookies := True;
form4.IdHTTP1.ReadTimeout := 30000;
form4.IdHTTP1.HandleRedirects := true;
form4.IdHTTP1.ProtocolVersion := pv1_1;
я использую Delphi XE 3
исходный код страницы
<form action="upload.php" method="post" id="upload_form" enctype="multipart/form-data">
я пытался
form4.IdHTTP1.Request.ContentType := 'multipart/form-data';
но все равно отправлено закодировано!
1 ответ
Решение
Проблема решена путем добавления
.ContentTransfer:='8bit';
так должно быть вот так
Params.AddFormField('form', 'adult=1&thumbsize=180&tos=on','').ContentTransfer:='8bit';