Datei HTTP hochladen

akosch

Grünschnabel
Da ich in vielen Boards gelesen habe, dass viele Leute nach einer Lösung, mit der man Dateien mit einem Programm HTTP hochladen kann, suchen, werde ich jetzt ein kleines Beispiel posten.

Ihr müsst Indy 9 installieren! Das ist wichtig!

Delphi-Code:

PHP:
procedure TForm1.Button1Click(Sender: TObject);
var
 StringStream: TStringStream;
 PostVars: TStringList;
 FileStream: TFileStream;
begin
 PostVars := TStringList.Create;
 StringStream := TStringStream.Create(''); 
 FileStream := TFileStream.Create('C:\test.jpg', fmOpenRead or fmShareDenyWrite);
  try 
    StringStream.CopyFrom(FileStream, FileStream.Size);
    PostVars.Values['file'] := IdEncoderMIME1.Encode(StringStream.DataString);
    IdHTTP1.Post('http://www.test.com/test.php', PostVars, StringStream);
  finally
    StringStream.Free;
    PostVars.Free;
    FileStream.Free;
  end;
end;

PHP-Code (test.php):

PHP:
<?
$image = base64_decode($file);
$fp = fopen("images/test.jpg", "w");
fwrite($fp, $image);
fclose($fp);
?>

MfG
akosch
 
Zuletzt bearbeitet: