07-07-2011, 12:06 AM
و عليكم السلام و رحمة الله
أنظر هذه الدالة أخي
أنظر هذه الدالة أخي
كود :
function THTTPPostThread.ProxyHttpPostFile(LocalIP, ConsoleIP, FileName: string; const Data: TMemoryStream; const ResultData: TStrings): Boolean;
var
HTTP: TIdHTTP;
Bound, Chaine, String;
ReqData: TMemoryStream;
ResData: TMemoryStream;
begin
Bound := IntToHex(Random(MaxInt), 8) + '_Indy_boundary';
HTTP := TIdHTTP.Create(nil);
try
ResData := TMemoryStream.Create;
try
ReqData := TMemoryStream.Create;
try
Chaine := '--' + Bound + EOL;
Chaine := Chaine + 'content-disposition: form-data; name="AgentIrisFile";';
Chaine := Chaine + ' filename="' + FileName + '"' + EOL;
Chaine := Chaine + ' Remote="' + LocalIP + '"' + EOL;
Chaine := Chaine + 'Content-Type: Application/octet-string' + EOL + EOL;
WriteStringToStream(ReqData, Chaine, TIdTextEncoding.Default);
ReqData.CopyFrom(Data, 0);
Chaine := EOL + '--' + Bound + '--' + EOL;
WriteStringToStream(ReqData, Chaine, TIdTextEncoding.Default);
ReqData.Position := 0;
HTTP.Request.ContentType := 'multipart/form-data; boundary=' + Bound;
HTTP.Post('http://' + ConsoleIP + '/upload', ReqData, ResData);
finally
ReqData.Free;
end;
ResData.Position := 0;
ResultData.LoadFromStream(ResData);
Result := True;
finally
ResData.Free;
end;
finally
HTTP.Free;
end;
end;
