Problem bei move_uploaded_file

Alles, was PHP betrifft, kann hier besprochen werden.

Problem bei move_uploaded_file

Postby Swiss-Hans » 22. March 2007 11:16

Hallo

XAMPP 1.5.5
PHP 5.2.0
Windows XP

Ich möchte einen Dateiupload machen. Bringe es nicht zum Laufen :(

Code: Select all
...
// Die Datei in das gewünschte Zielverzeichnis verschieben
$upfile = '/uploads/' . $_FILES['userfile']['name'];

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile)) {
        echo 'Problem: Konnte die Datei nicht in das Zielverzeichnis verschieben.';
        exit;
    }
} else {
    echo 'Problem: Möglicher Angriff beim Hochladen. Dateiname: ';
    echo $_FILES['userfile']['name'];
    exit;
}
...

Es kommt dann folgende Fehlermeldung:

Warning: move_uploaded_file(/uploads/test.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\as-rigi\upload.php on line 30

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Programme\xampp\tmp\php3D.tmp' to '/uploads/test.txt' in C:\Programme\xampp\htdocs\as-rigi\upload.php on line 30

Problem: Konnte die Datei nicht in das Zielverzeichnis verschieben.

***

Ich bitte um Hilfe.
Hans
Swiss-Hans
 
Posts: 9
Joined: 20. December 2006 08:40

Postby Wiedmann » 22. March 2007 13:37

Gibt es das Zielverzeichnis denn?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Swiss-Hans » 22. March 2007 13:51

Ja - uups...

Jetzt wo ich es schreibe fällt es mir wie Schuppen von den Augen. Ich habe in hdocs diverse Ordner mit verschiedenen Webs - und den Pfad habe ich aber /uploads/ angegeben, was natürlich ab hdocs gilt - nicht wie ich eigentlich plante ab hdocs/as-rigi/.

Dies hat mich nicht erst das erste Mal erwischt. Wie macht man dies gescheiter - einen absoluten Pfad ab Webroot bei verschiedenen Webs in hdocs?

Also - auf jeden Fall danke ich für die Rückmeldung. Erst als ich die Antwort am Ausformulieren war, wurde es mir plötzlich klar :lol:
Hans
Swiss-Hans
 
Posts: 9
Joined: 20. December 2006 08:40

Postby Wiedmann » 22. March 2007 14:02

und den Pfad habe ich aber /uploads/ angegeben, was natürlich ab hdocs gilt

Nein, der Pfad ist ab dem Hauptverzeichnis deiner Festplatte (fängt ja mit "/" an, sprich ist ein absoluter Pfad) und nicht ab "htdocs" (dann müsste der z.b. so anfangen "/xampp/htdocs/uploads/").

Wie macht man dies gescheiter - einen absoluten Pfad ab Webroot bei verschiedenen Webs in hdocs?

Eine Möglichkeit aus einem relativen einen absoluten Pfad zu machen wäre:
Code: Select all
$upfile = realpath('./uploads').DIRECTORY_SEPARATOR.$_FILES['userfile']['name'];
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Swiss-Hans » 22. March 2007 17:46

Danke :!:
Hans
Swiss-Hans
 
Posts: 9
Joined: 20. December 2006 08:40


Return to PHP

Who is online

Users browsing this forum: No registered users and 29 guests