2017-12-16 10 views
1

Nachdem ich mehrere Einträge hier und auch Google durchgesehen habe, muss ich noch eine Lösung für mein Problem finden. Ich mache eine Website, auf der ein Nutzer Bilder hochladen kann. Wenn für ihre Bilder kein persönliches Verzeichnis existiert, erstelle ich ein eigenes und lege das Bild hinein. Das Problem ist, dass ich das Verzeichnis nicht mehr anzeigen kann, nachdem das Verzeichnis erstellt wurde, und das Image nicht mehr angezeigt wird, da ich nicht über die richtigen Berechtigungen verfüge, wenn ich zu diesem Ordner navigiere und versuche, ihn zu öffnen. Ich habe mehrere Leute mit dem gleichen Problem gesehen, und keine der Lösungen, die ich gefunden habe, hat für mich funktioniert.PHP - Kann das Bild nicht anzeigen, nachdem es in das erstellte Verzeichnis hochgeladen wurde

Ich bin mir bewusst, dass ich Dinge wie Größe überprüfen muss, Typ, wenn es bereits existiert, usw. An diesem Punkt versuche ich nur, das Bild zu sehen.

Bearbeiten: Berechtigungen von 0777 auf 0755 geändert, aber das Problem bleibt bestehen.
EDIT2: fileperms gibt 33206 zurück, wenn es auf dem hochgeladenen Bild ausgeführt wird.

if(isset($_POST["submit"])) 
    { 
     $path = "images/$user_id"; 

     if(!file_exists($path)) 
     { 
      mkdir($path, 0755, true); 
     } 

     $target_dir = "$path/"; 
     $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
     $uploadOk = 1; 
     $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); 

     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
     if($check !== false) 
     { 
      echo "File is an image - " . $check["mime"] . "."; 
      $uploadOk = 1; 
     } 
     else 
     { 
      echo "File is not an image."; 
      $uploadOk = 0; 
     } 

     if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
     { 
      chmod($path . "/" . $_FILES["fileToUpload"]["name"], 0755); 
      echo "The file was upload successfully."; 
     } 
     else 
     { 
      echo "There was an error with the upload."; 
     } 
    } 
+0

Verzeichnis-Berechtigung sollte auf '0755' nicht' 0777' gesetzt werden – JeanPaul98

+0

Danke für den Vorschlag. Ich habe diese Änderungen vorgenommen, kann das Bild jedoch immer noch nicht anzeigen. – Alithvia

+1

Also, wenn Sie es hochladen, können Sie sehen, dass die Datei in den Ordner hochgeladen wurde? – JeanPaul98

Antwort

0

Falls das jemand findet und ist das gleiche Problem, ist die Frage, dass die temporären Ordner, der die Datei in über Berechtigungen platziert ist, dass Sie sie sehen verhindern. Ich löste das, indem ich meine php.ini-Datei bearbeite und das upload_tmp_dir in einen Ordner setzte, den ich auf meinem Desktop mit vollen Berechtigungen erstellt hatte.

Verwandte Themen