Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Hochladescript arbeitet unter Xampp (Win) nicht (https://www.delphipraxis.net/110016-%5Bphp%5D-hochladescript-arbeitet-unter-xampp-win-nicht.html)

Chrissi91 11. Mär 2008 17:38


[PHP] Hochladescript arbeitet unter Xampp (Win) nicht
 
Hi,

ich habe Xampp auf meinem PC installiert und ist auch nach außen hin zugänglich über meine normale IP-Adresse (jaja, ich weiß. nicht praktisch wenn man eine dynamische hat, aber für meine Zwecke reichts).

Ich habe folgenden PHP-Code:

Code:
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data"><input type="file" name="f"><input name="l" type="submit"></form>';
move_uploaded_file($_FILES['f']['tmp_name'],'http://'.$_SERVER['REMOTE_ADDR'].'/blubb/'.$_GET['name'].'.txt');
Fülle ich dieses Formular mit Delphi mittels TMsMultiPartFormDataStream aus, landet in dem Verzeichnis aber nicht die hochgeladene Datei. Sie überschreitet nicht die maximale hochzuladende Dateigröße. Das ganze läuft unter Windows (Vista), sprich CHMOD gibt es nicht. Das Verzeichnis ist NICHT schreibgeschützt.

Entweder muss ich noch was in der PHP.ini ändern, weil etwas noch nicht erlaubt ist, oder die Pfadangabe ist falsch ('http://77.168.56.12/blubb/'.$_GET['name'].'.txt'). Vorher stand da: /srv/www/vhosts/blubb.de/httpdocs/blubb/


Hab ich einen Fehler beim Pfad oder muss ich das Hochladen von Dateien erst in der Php.ini erlauben? Ich bin nicht gerade Experte was die PHP-Einstellungen betreffen. :lol:

jfheins 11. Mär 2008 18:56

Re: [PHP] Hochladescript arbeitet unter Xampp (Win) nicht
 
Du kannst generell nicht übers http-Protokoll schreiben, also kannst du auch keine Datei nach http://... verschieben ;)

Du kannst js erstmal sowas wie C:\test.dat angeben ;)

Chrissi91 12. Mär 2008 05:24

Re: [PHP] Hochladescript arbeitet unter Xampp (Win) nicht
 
Das versteh ich nicht ganz. Du meinst ich soll das auf die ÖFestplatte speichern? Irgendwo und dann verschieben, hm .... eigentlich reicht es mir, wenn es unter C:\ ist. :D

Matze 12. Mär 2008 05:30

Re: [PHP] Hochladescript arbeitet unter Xampp (Win) nicht
 
Hallo,

Julius meint, du kannst bei move_uploaded_file() als 2. Parameter keine http-Adresse angeben:

Code:
move_uploaded_file($_FILES['f']['tmp_name'], [color=#ff0000]'http://'.$_SERVER['REMOTE_ADDR'].'/blubb/'.$_GET['name'].'.txt'[/color]);
Sonst könnte ja jeder, wenn die Rechte stimmen, auf zahlreichen Servern Dateien speichern und das wäre nicht sonderlich sinnvoll.
Wie Julius geschrieben hast, musst du den absoluten Pfad (falls man das hier so nennen kann) angeben. Wie der unter Windows aussieht, weißt du:

Code:
'c:\' . $_GET['name'] . '\blubb.txt'
Auf einem Linux-Server könnte dies beispielsweise so aussehen:

Code:
'/home/www/web123/html/main/' . $_GET['name'] . '/blubb.txt'
Das teilt dir der Hoster jedoch i.d.R. bei Vertragsabschluss mit.

Achte aber darauf, dass du den Inhalt von $_GET['name'] überprüfst. Sonst lässt sich sehr einfach ein anderer Dateiname bzw. zusätzlich auch ein anderes Unterverzeichnis angeben.

Gruß

Chrissi91 12. Mär 2008 06:08

Re: [PHP] Hochladescript arbeitet unter Xampp (Win) nicht
 
Danke. Also muss da ein absoluter Dateipfad hin. Da das Ganze eh nur für mich ist und via htaccess geschützt ist, brauch ich da auch nichts zu überprüfen. :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz