Netspirit, проблему с накоплением данных я уже решил с помощью вашего компонента DataAccumulator. Нет, заголовки Apache не передает, он их помещает в переменные из которых я их получаю. Собственно все работает но столкнулся с ужасной производительностью.
На web странице я прикрепляю файл, который преобразуется в Base64, затем файл отправляется на сервер.
Данные приходят частично в виде URLEncode, например текстовый файл 123.txt с текстом "1234567890данные1234567890данные1234567890данные" браузером будет отправлен как:
"data:text/plain;base64,MTIzNDU2Nzg5MOTg7e375TEyMzQ1Njc4OTDk4O3t++UxMjM0NTY3ODkw5ODt7fvlMTIzNDU2Nzg5MOTg7e375TEyMzQ1Njc4OTDk4O3t++U="
а с точки Read элемента Console я эти данные получаю как:
filename=123.txt&data=data%3Atext%2Fplain%3Bbase64%2CMTIzNDU2Nzg5MOTg7e375TEyMzQ1Njc4OTDk4O3t%2B%2BUxMjM0NTY3ODkw5ODt7fvlMTIzNDU2Nzg5MOTg7e375TEyMzQ1Njc4OTDk4O3t%2B%2BU%3D
Вопрос: как сделать URLDecode? Я пробовал Charset...но при файле 5-6Mb процесс занимает почти минуту...
П.с. в самом компоненте Console есть THIConsole.Decode с комментарием "Преобразует символы, записанные в виде %2B к правильному виду", но она не вызывается с точки Read.
Пробовал так:
procedure THIConsole._var_Read;
var s:string;
begin
ReadLn(s);
dtString(_Data,Decode(s));
end;
Не заработало. Прошу помочь, подскажите как Decode в Console для точки Read задействовать или как URLDecode сделать быстрее чем в Charset...
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|