Alice - Sa 03.11.07 16:50
Titel: Probleme mit Idhttp post (images)
hi,
ich versuche per idhttp dateien upzuloaden, wie folgt:
Delphi-Quelltext
1: 2: 3: 4:
| stream := TIdMultiPartFormDataStream.Create; Stream.AddFile('file','c:\test.png', 'multipart/form-data'); s0 := IdHTTP_PostJPG.Post(http.../upload.php,stream); stream.Free; |
auf web seite ein passendes script:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <?php $max_byte_size = 152400; $allowed_types = "(png)"; if(is_uploaded_file($_FILES["file"]["tmp_name"])) { if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) { // Datei auch nicht zu groß if($_FILES["file"]["size"] <= $max_byte_size) { // Alles OK -> Datei kopieren if(move_uploaded_file($_FILES['file']['tmp_name'], "upload/".$_FILES['file']['name'])) { echo "Datei erfolgreich hochgeladen"; . . . |
was auch ganz gut klappt, nur ab und an ist das file korrupt und nicht anzeigbar, ein vergleich der dateigrösse zeigt das sie etwas kleiner ist als die lokale orig.datei. komischerweise ist das ende der datei identisch, es scheint so as ob mittendrinn etwas fehlt?
woran könnte das liegen? die idhttp komponente dabe ich in standart einstellungen laufen, sie wird nicht zur laufzeit erzeugt, D7, indy v9.0.18 und die *.png dateien haben <50kb an grösse.
btw.:
woran erkenne ich das die komp. fertig mit dem upload ist? der trigger OnWorkEnd springt nicht an!?
cu and thx!
alice
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
harthi - Di 27.11.07 01:22
Alice hat folgendes geschrieben: |
ich versuche per idhttp dateien upzuloaden, wie folgt:
Delphi-Quelltext 1: 2: 3: 4:
| stream := TIdMultiPartFormDataStream.Create; Stream.AddFile('file','c:\test.png', 'multipart/form-data'); s0 := IdHTTP_PostJPG.Post(http.../upload.php,stream); stream.Free; | |
Es wundert mich, dass das überhaupt manchmal richtig klappt, weil eigentlich müsste Dein Aufruf bei Stream.AddFile den entsprechenden Mime-Type enthalten und nicht wie von Dir angegeben 'multipart/form-data' ?!
Probier einfach einmal folgende Zeile an statt der von Dir genutzten:
Delphi-Quelltext
1:
| Stream.AddFile( 'file', 'c:\test.png', 'image/png' ); |
Moderiert von
Narses: Zitat repariert