Всем доброе время суток!
Подскажите пожалуйста как используя компонент IdHttpServer
получить:
1. Переменные POST
2. Файлы переданные в POST
В данный момент пробовал следующий код:
Код:
procedure TForm1.serverCommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
str,str_fil:string;
fil:string;
ext:string;
PostedFile:TMemoryStream;
text:string;
tsr : tsearchrec;
foto_list:string;
begin
str := StringReplace(arequestinfo.document,'/','\',[rfReplaceAll]);
Delete(str,1,1);
str_fil := ExtractFileName(str);
fil := patch+'server\'+str;
ext := ExtractFileExt(str_fil);
if(str_fil = 'upload.php')then
begin
PostedFile:=TMemoryStream.Create;
PostedFile.LoadFromStream(ARequestInfo.PostStream);
PostedFile.SaveToFile(patch+'server\script\user\0\'+UTF8Decode(ARequestInfo.Params.Values['namesendfile']));
PostedFile.SaveToFile(patch+'server\script\user\0\m\m_'+UTF8Decode(ARequestInfo.Params.Values['namesendfile']));
AResponseInfo.WriteContent;
AddLog('Файл загружен: '+UTF8Decode(ARequestInfo.Params.Values['namesendfile']));
PostedFile.Free;
ARequestInfo.PostStream.Free;
exit;
end;
Файл приходит и записывается в папку, но файл имеет лишению информация которая была отправленная вместе с файлом в POST
Код:
------------ei4ei4KM7ei4Ef1KM7KM7ae0cH2ae0
Content-Disposition: form-data; name="Filename"
DSC03262242.jpg
------------ei4ei4KM7ei4Ef1KM7KM7ae0cH2ae0
Content-Disposition: form-data; name="Filedata"; filename="DSC03262242.jpg"
Content-Type: application/octet-stream
яШяа JFIF ,, ябµExif II* ћ ѕ Г ............ (это данные самого изображения)
Вопрос^
1. как принять только файл?
2. Как принять переменные переданные в POST ?