Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2018.03.25;
Скачать: [xml.tar.bz2];

Вниз

Отправка файла post запросом, вместо параметра вопросы   Найти похожие ветки 

 
Погроммист   (2016-04-04 02:33) [0]


Function Upload(Fi: TStream; AFileName: AnsiString;
  ProductName: AnsiString): boolean;
var
 formData: TMyIdMultiPartFormDataStream;

begin
 Result := false;

 formData := TMyIdMultiPartFormDataStream.Create;
 formData.AddFileStream("file", AFileName, Fi);
 formData.AddFormField("ProductName", ProductName); //тут русский

 IdHTTP.Request.AcceptCharSet := "windows-1251";
 IdHTTP.Request.ContentType := "multipart/form-data";  

   errorMessage := IdHTTP.Post(URL, formData,IndyTextEncoding(1251)
);


пытаюсь пост запросом отправить файл и параметры с ним, параметры могут быть на кирилице. Но пхп скрипт получает эту кирилицу в виде "?????????". Нашел несколько тем на эту тему, но так и не понял что мне делать. В методе пост есть третий параметр, как раз про кодировку, но вот что туда нужно передавать и как я понять не могу. Попробовал передавать IndyTextEncoding(1251), но он говорит что такой перегруженной функции нет, которую можно вызывать с такими параметрами.

функция пост объявлена там как

TIdCustomHTTP.Post(AURL: string; ASource: TIdMultiPartFormDataStream
 {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}

и вот  что значит директива {$IFDEF STRING_IS_ANSI} мне как то непонятно, но может из за нее параметр не добавляется. А что делать?


 
KSergey ©   (2016-04-04 10:37) [1]

А веб-сервер на какую кодировку настроен?


 
KSergey ©   (2016-04-04 10:40) [2]

Еще вот тут опробуйте читнуть, вдруг что-то поможет
http://forum.vingrad.ru/forum/topic-318946.html


 
Погроммист   (2016-04-04 16:02) [3]

ну видимо на UTF8, а как узнать?

но главная проблема, что значит {$IFDEF STRING_IS_ANSI} когда этот параметр активен и почему я не могу его использовать?


 
Awak00m   (2016-04-04 20:28) [4]

Возможно, я ошибаюсь, я не встречал передачи кириллицы без кодировки в %ХХ.
{$IFDEF STRING_IS_ANSI} насколько я понимаю, относится не к кодировке, а к размеру типа Char. И тогда, это зависит только от версии Delphi.

А на том конце сервер Ваш? Если да, то закодируйте все, что хотите, в BASE64, на том конце раскодируйте, и можете хоть дампы памяти передавать. Я бы так сделал.


 
Погроммист   (2016-04-05 01:37) [5]

попробовал перекодировать в Base64

ProductName        := EncodeString(ProductName);

результат "xODw6iDu8OHo8g=="

а сервер получает "xODw6iDu8OHo8g=3D=3D"

почему? как исправить?


 
Погроммист   (2016-04-05 01:42) [6]

он символ "=" в ходе передачи превращает в "=3D"


 
Погроммист   (2016-04-05 02:33) [7]

а если скрипт запустить из командной строки браузера и передать "=" то в скрипт приходит тоже "=" :-(

Т.е. это IdMultiPartFormDataStream какую то фигню отправляет (


 
Погроммист   (2016-04-05 02:35) [8]

причем если после заполнения вызывать temp := formData.FFields.Items[3].FieldValue;

то значение "=", где появляется это 3D?


 
Погроммист   (2016-04-05 04:59) [9]

эм нашел, если сделать так

formData.AddFormField("ProductName", "=").ContentTransfer := "8bit";

то вроде норм.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2018.03.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
4-1286460623
OlegSkal
2010-10-07 18:10
2018.03.25
Имя пользователя


1-1356094804
AxNb
2012-12-21 17:00
2018.03.25
ThreadID всех динамических потоков почему-то всегда одинаковый.


15-1471469402
Юрий
2016-08-18 00:30
2018.03.25
С днем рождения ! 18 августа 2016 четверг


2-1459726395
Погроммист
2016-04-04 02:33
2018.03.25
Отправка файла post запросом, вместо параметра вопросы


2-1459514237
Макака
2016-04-01 15:37
2018.03.25
Подсветка кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский