Autor Beitrag
Alice
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 03.11.07 16:50 
hi,

ich versuche per idhttp dateien upzuloaden, wie folgt:
ausblenden 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:
ausblenden 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 user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
harthi
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 27.11.07 01:22 
user profile iconAlice hat folgendes geschrieben:
ich versuche per idhttp dateien upzuloaden, wie folgt:
ausblenden 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:

ausblenden Delphi-Quelltext
1:
Stream.AddFile( 'file''c:\test.png''image/png' );					


Moderiert von user profile iconNarses: Zitat repariert