move_uploaded_file() Problem mit dem Verzeichnis

mrepox

Erfahrenes Mitglied
Hallo Leute,

Ich bekomme immer die Fehlermeldung "Problems with upload". Nur wenn ich
PHP:
'linux'.$_FILES["userfile"]["name"][$key]
schreibe statt
PHP:
'linux'.'/'.$_FILES["userfile"]["name"][$key]
speicherts das File aber in dem Ordner wo auch dieses Script liegt und nicht im Ordner "linux"
PHP:
<?php
include_once('xaheader.php');

foreach ($_FILES["userfile"]["error"] as $key => $error) {
   if ($error == UPLOAD_ERR_OK) {
       echo"$error_codes[$error]";
       move_uploaded_file(
         $_FILES["userfile"]["tmp_name"][$key],
         'linux'.'/'.$_FILES["userfile"]["name"][$key]  
       ) or die("Problems with upload");
   }
}

?>

Habe alles durchgeforstet auch die man-pages, komme nicht weiter

Gruß Markus




selbst so gehts nicht:

PHP:
foreach ($_FILES["userfile"]["error"] as $key => $error) {
   if ($error == UPLOAD_ERR_OK) {
       echo"$error_codes[$error]";
       
       $verz = $_FILES["userfile"]["name"][$key];
       move_uploaded_file($_FILES["userfile"]["tmp_name"][$key] ,  "test/e17/".$verz)   
                                    
       or die("Problems with upload");
   }
}
 
Zuletzt bearbeitet:
Diese Pfadangabe wirkt ein wenig seltsam, weil du nie wirklich wissen kannst, wohin sie geleitet wird. Ohne einen Trailingslash geht PHP von einem relativen Pfad aus. Wenn dieser nicht im momentanen Arbeitsverzeichnis gefunden werden kann, sucht PHP in den Include-Directories, wo zum Beispiel die "Standardbiblitheken" gelagert sind.
Du kannst mal probeweise überprüfen, wohin die Pfadangabe führt und ob das Verzeichnis existiert:
PHP:
$path = realpath('linux/'); // absoluter Pfad
var_dump($path); // Pfad ausgeben
var_dump(is_readable($path)); // kann auf Verzeichnis zugreifen?

Ich empfehle dir, einen absoluten Pfad zu benutzen.
Das geht zum Beispiel mit
PHP:
dirname(__FILE__); // gibt den Pfad zu dem Dokument zurück, in dem diese Zeile aufgerufen wird (ohne Dateinamen)
ganz gut - so hast du erstmal den Pfad zum momentanen Verzeichnis. Von da aus kannst du dann ganz simpel "navigieren", zB
PHP:
move_uploaded_file($_FILES["userfile"]["tmp_name"][$key],
    dirname(__FILE__) . '/../../pfad/zum/upload/directory');
Nur als Beispiel. Könnte mir vorstellen, dass du mit deiner momentanen Version versuchst, in einen Ordner "linux" in einem Includeverzeichnis zu schreiben.
 
Du solltest auch mal die Zugriffsrechte sowie den Eigentümer und die Gruppe des Verzeichnisses prüfen.
 
Zurück