PHP: move_uploaded_file funktioniert nicht?

Ich versuche gerade eine Datei, welche mit einem Formular hochgeladen wird, aus dem tmp-Ordner in einen festen Ordner zu verschieben. Jedoch passiert einfach gar nichts.

PHP-Code:

<?php
  
  $upload_folder = '/var/www/documents/'; // Das Upload-Verzeichnis
  $filename = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME);
  $extension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));

  // Überprüfung der Dateiendung
  $allowed_extensions = array('pdf');

  if (!in_array($extension, $allowed_extensions)) {
    die('<script>alert("Ungültige Dateiendung. Nur PDF-Dateien sind erlaubt!");</script>');
  }

  // Pfad zum Upload
  $new_path = $upload_folder.$filename.'.'.$extension;
  $pdfpath = "/var/www/documents/".$filename.'.'.$extension;

  // Neuer Dateiname falls die Datei bereits existiert
  if (file_exists($new_path)) {
    //Falls Datei existiert, hänge eine Zahl an den Dateinamen
    $id = 1;
    
    do {
      $new_path = $upload_folder.$filename.'_'.$id.'.'.$extension;
      $pdfpath = "/var/www/documents/".$filename.'_'.$id.'.'.$extension;
      $id++;
    } while(file_exists($new_path));
  }

  // Alles okay, verschiebe Datei an neuen Pfad
  move_uploaded_file($_FILES['file']['tmp_name'], $new_path);
?>

Folgende Sachen sind gecheckt:

  1. Sind auf dem Ordner documents Schreibrechte gesetzt? -> drwxrw-rw- ist gesetzt.
  2. Gibt es die Datei im Ordner /tmp? -> Ja.
  3. Ist der Ordner für PHP existent und kann auch dort geschrieben werden? -> Beides ja.
  4. Ist die Variable $new_path richtig? -> Ja (z.B. /var/www/documents/test.pdf).

Ich weiß nicht woran, es noch liegen könnte und bitte an dieser Stelle um Hilfe!

Danke schon einmal!

Server, Computer, Technik, programmieren, Ubuntu, PHP, Technologie, Webentwicklung, Webserver, Spiele und Gaming
2 Antworten