Hallo!
Ich möchte folgendes Problem lösen: Eine lokale Datei auf einen Webserver hochladen.
Testumgebung: D5 Prof, Indy 9.0.14, xampplight mit php 5.14.
Per FTP klappt das alles. Aber manchmal muss ich auf das Http-Protokoll ausweichen.
Habe versucht mich im Forum schlau zu machen, und verwende mittlerweile folgenden Delphi-Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var Data: TIDMultiPartFormDataStream; begin Data := TIdMultiPartFormDataStream.Create; try Data.AddFile('archive', 'c:\temp\abc.zip', 'application/zip'); IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; Data.Position := 0; Memo1.Lines.Text := IdHTTP1.Post('http://localhost/upload.php', Data); finally Data.Free; end; end; |
Das zugeörige PHP-Script lautet:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| <?php
$uploaddir = 'tausch/'; $uploadfile = $uploaddir. $_FILES['archive']['name'];
print "<pre>"; if (move_uploaded_file($_FILES['archive']['name'], $uploadfile)) else ?> |
Wenn ich das Delphiprog. starte gibt das Php-Script zurück:
Delphi-Quelltext
1: 2:
| <pre>Possible file upload attack! Here's some debugging info: tausch/ |
Mit anderen Worten, die Datei wurde nicht auf den Server gespeichert.
Kann mir jemand helfen, damit die Datei auf den Server gespeichert wird?