it-swarm.com.de

So erstellen Sie ein Ziel (einen Ordner) in PHP während der Verwendung von move_uploaded_file ()?

Ich möchte Dateien mit PHP hochladen und benutze move_uplload_files, um sie in den gewünschten Zielordner zu kopieren.

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'))
die("success");
else
die("error");

Aber wenn ich das versuche

$Rand =  chr(Rand(97, 122)). chr(Rand(97, 122)). chr(Rand(97, 122));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$Rand))
die("success");
else
die("error");

Ich erhalte eine Fehlermeldung und es sieht so aus, als ob move_uploaded_files keine Ordner erstellen kann. Wie kann ich das machen ?

Grundsätzlich bin ich auf der Suche nach einer Möglichkeit wie file_put_contents(), die den Pfad erstellt, wenn er nicht vorhanden ist.

14
user529649

Verwenden Sie mkdir() .

Wenn Sie mehrere Ordner erstellen müssen, z. B. indem Sie a/b/c übergeben, setzen Sie das dritte Argument auf TRUE.

Sie können testen, ob es bereits vorhanden ist, und hinzufügen, wenn es Ihnen nicht gefällt.

$path = 'abc';

if ( ! is_dir($path)) {
    mkdir($path);
}
29
alex

Verwenden Sie so etwas:

$folder = "uploads"; 
if(!is_dir($folder)) mkdir($folder);

is_dir() prüft, ob der Ordner vorhanden ist.

5
Vikash

Erstellen Sie zuerst das Verzeichnis mit mkdir()

  $Rand =  chr(Rand(97, 122)). chr(Rand(97, 122)). chr(Rand(97, 122));
    mkdir('./uploades/'.$Rand);
    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$Rand))
    die("success");
    else
    die("error");
1
Shakti Singh

Das funktioniert bei mir:

$path = "upload/";
$name = $_FILES["file"]["name"];
// Remove dangerous characters from filename.
$name = str_replace('..', '', $name);
$name = str_replace('/', '', $name);
$name = str_replace('\\', '', $name);

if (($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
&& ($_FILES["file"]["size"] < 2000000)) {
      if ($_FILES["file"]["error"] > 0) {
        echo "Error " . $_FILES["file"]["error"] . "<br>";
      } else {
        if(file_exists($path.$name)){
            echo "$path$name already exists. ";
        } else {                
            @mkdir($path, 0666, true);  // Create non-executable upload folder(s) if needed.
            move_uploaded_file($_FILES["file"]["tmp_name"], $path.$name);
            echo "Stored in: $path$name";
        }
    }
} else {
    echo "Invalid file. Allowed are JPG smaller than 2 MB.";
}
0
Cees Timmerman