ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Delphi, POST и кодировка файла |

29.02.2008, 12:09
|
|
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме: 183980
Репутация:
50
|
|
Delphi, POST и кодировка файла
Клиент написан на Delphi отправляет файл
Код:
...
const
URL_POST = 'hots.ru/uploadtest.ashx';
...
procedure POSTFile(Filename: String);
var
TotalDataCount, i: Integer;
IdHTTP: TIdHTTP;
LPostStream: TIdMultiPartFormDataStream;
LResultStream: TStringStream;
LpostString: String;
function PostDecode(AString: String): String;
begin
Result := CharReplace(AString, '%', ' ');
Result := CharReplace(Result, '&', ' ');
end;
begin
IdHTTP := TIdHTTP.Create(nil);
try
IdHTTP.MaxLineLength := 0; //koi8-r windows-1252
LPostStream := TIdMultiPartFormDataStream.Create;
LpostString:= FileToString(Filename);
LPostStream.AddFormField('UserData', PostDecode(LpostString));
LResultStream := TStringStream.Create('');
try
try
IdHTTP.Post(URL_POST, LPostStream, LResultStream);
except
on E:Exception do
begin
Showmessage(E.Message);
end;
end;
showmessage(LResultStream.DataString);
finally
LPostStream.Free;
LResultStream.Free;
end;
finally
IdHTTP.Free;
end;
end;
файл uploadtest.ashx содержит скрипт
Код:
string x = "sdsdsd";
System.IO.File.WriteAllText(@"c:\text1.txt", x);
x это данные которые он принимает... файл сохраняеться но откуда то появляються лишние байты, пробовал менять кодировку, скорее всего дело в ней, но никак не могу подобрать нужную
Кто сталкивался с такой проблемой... прошу помоч.
|
|
|

29.02.2008, 12:34
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
всмысле 'лишние байты' ?
|
|
|

29.02.2008, 12:40
|
|
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме: 183980
Репутация:
50
|
|
просматриваю полученный файл в хексе и вижу в некоторых строчках лишние байты, которые соответственно смещают код, пробовал менять кодировку ... приходт опять же похожий файл... но всё таки изменённый... и при каждой кодировке изменения эти разные.
А чёть не забыл, если это важно, исходный файл mdb, я его сжимаю в zip потом переименовываю в txt, оставшийся после отправки файл обратно распоковываеться нормально, а вот принятый никак...
|
|
|

29.02.2008, 18:36
|
|
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме: 183980
Репутация:
50
|
|
Разобрался... надо просто было делать проще
Код:
LpostString:= FileToString(Filename);
LResultStream := TStringStream.Create(LpostString);
LPostStream.AddObject('UserData', 'image/GIF', LResultStream);
и потом постовать...
хз почему но файл приходит с 2 лишними байтами в начале(Enter)....пришлось просто при Get'е их обрубать...
|
|
|

04.03.2008, 13:42
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
Сообщение от dos999
файл приходит с 2 лишними байтами в начале(Enter).
вполне логично , они отделяют заголовок от самого контента ...
Closed...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|