![]() |
Datei Upload über HTTP POST mit Hilfe von Indy funzt net :(
Servus,
ich versuche mit folgendem Code eine Datei mit Hilfe eines PHP Scriptes über Indy hochzuladen:
Delphi-Quellcode:
Leider funktioniert das nicht und ich bekomme auch nicht heraus warum :(
uses IdMultipartFormData;
... procedure TForm1.Button1Click(Sender: TObject); var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try data.AddFile('archive', 'c:\abc.zip', 'application/zip'); Memo1.Lines.Text := IdHTTP1.Post('http://localhost/upload.php', data); finally data.Free; end; end; Könnt ihr mir helfen? |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Ich bin mir der Lösung nicht sicher, aber versuche mal folgende Zeile:
Code:
...:cat:...
uses IdMultipartFormData;
... procedure TForm1.Button1Click(Sender: TObject); var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try data.AddFile('archive', 'c:\abc.zip', 'application/zip'); [color=#ff0000]data.Position := 0;[/color] Memo1.Lines.Text := IdHTTP1.Post('http://localhost/upload.php', data); finally data.Free; end; end; |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Danke für deinen Versuch, Sakura, es funktioniert leider trotzdem nicht ... :(
|
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Bei mir funktioniert der Code einwandfrei. Liegt der Fehler evtl. auf der PHP-Seite??
KASI |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
@KASI: Könntest du deinen PHP Code hier posten?
Wenn ich eine Datei über eine HTML-Seite hochladen möchte, funktioniert das ganze wunderbar! |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Aus dem PHP Manual
Code:
KASI
<?php
// In PHP earlier then 4.1.0, $HTTP_POST_FILES should be used instead of // $_FILES. In PHP earlier then 4.0.3, use copy() and is_uploaded_file() // instead of move_uploaded_file $uploaddir = 'files/'; $uploadfile = $uploaddir. $_FILES['archive']['name']; print "<pre>"; if (move_uploaded_file($_FILES['archive']['tmp_name'], $uploadfile)) { print "File is valid, and was successfully uploaded. "; print "Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES); } ?> |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
|
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Es liegt schlicht weg an der Delphiversion. Das ganze hatten wir schonmal und ich wurde dann irgendwann beschimpft weil ich auch geschrieben hab das es wunderbar klappt und bei dem der Hilfe braucht hat es nicht geklappt. Irgendwann ist mir aufgefallen das es bei meiner Personal-Version auch nicht geklappt hat.
Schau dir mal das hier an: ![]() Dort wurde dann auch des Problems Lösung gefunden |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
Wie sieht denn das HTML-Formular aus?
Ich hatte gerade gestern ein ähnliches Problem und habe rausgefunden dass das PHP-Script unbedingt den Parameter Filename aus dem Formular brauchte bevor es die Datei angenommen hat. Bei der Standard-Methode wurde dieses Feld nicht verwendet. Ich habe (allerdings unter .NET) den ganzen HTTP-Request daraufhin von Hand geschrieben und versendet. Danach hat das einwandfrei funktioniert. |
Re: Datei Upload über HTTP POST mit Hilfe von Indy funzt net
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz