Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Upload über idHTTP (https://www.delphipraxis.net/60710-upload-ueber-idhttp.html)

Dash 11. Jan 2006 12:04


Upload über idHTTP
 
Hallo,

ich habe vor für meinen Upload-Service auf mehrfachen Wunsch ein kleines Upload-Tool zu schreiben. Sollte ja eigentlich kein Problem sein...

Ich habe nun einen kleinen Code im Netz gefunden, und eintprechend angepasst:
Delphi-Quellcode:
procedure TfrmMain.btnUploadClick(Sender: TObject);
var
  StringStream: TStringStream;
  PostVars: TStringList;
  FileStream: TFileStream;
begin
  PostVars := TStringList.Create;
  StringStream := TStringStream.Create('');
  FileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
  try
    //IdHTTP1.Connect;
    StringStream.CopyFrom(FileStream, FileStream.Size);
    PostVars.Values['file'] := IdEncoderMIME1.Encode(StringStream.DataString);
    Application.ProcessMessages;
    IdHTTP1.Post('http://mediacache.de/uploadtool.php?pDatei=upload.tmp', PostVars, StringStream);
    Memo1.Text := StringStream.DataString;
  finally
    StringStream.Free;
    PostVars.Free;
    FileStream.Free;
  end;
end;
Das Uploaden klappt auch soweit ganz gut. Nun habe ich allerdings das Problem, dass nach dem Upload in der Memo1 nur das hier erscheint:

Zitat:

ÿØÿà
Die PHP Datei sieht folgendermaßen aus:
Zitat:

<?
include('config.php');
include('include/functions.php');
make_dir($uploaddir);
$datei = base64_decode($file);
$fp = fopen($HTTP_GET_VARS['pDatei'], "w");
fwrite($fp, $uploaddir.$datei);
fclose($fp);
echo $uploaddir;
?>
Zum Test gibt er erstmal nur das Verzeichnis zurück, in welches die Datei hochgeladen wurde...
Ich habe echt keinen Plan wo da der Fehler sein soll :oops:

Grüße,
Denis

HERMES 11. Jan 2006 13:45

Re: Upload über idHTTP
 
warum willst du die hochgeladene Datei in deinem Memo anzeigen? Wenn du eine Binärdatei hochlädst kann nur "schrott" in der Memo angezeigt werden. Mit einer Textdatei sollte das anzeigen funktionieren.

mfg

Dash 11. Jan 2006 14:01

Re: Upload über idHTTP
 
Hallo,

ich möchte nicht den Inhalt der Datei anzeigen lassen, sondern benötige das "echo" der PHP Datei....
und

Delphi-Quellcode:
lala: String
...
lala := IdHTTP1.Post('http://mediacache.de/uploadtool.php?pDatei=upload.tmp', PostVars, StringStream);
funktioniert in diesem Fall nicht!

Grüße,
Denis

generic 11. Jan 2006 14:08

Re: Upload über idHTTP
 
achtung sicherheitslücke!

Code:
 $fp = fopen($HTTP_GET_VARS['pDatei'], "w");
auf path traversals achten!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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