move_uploaded_file () konnte den Stream nicht öffnen: keine solche Datei oder kein Verzeichnis

8

Ich habe Ihre Standard-Checks gemacht (ist das Verzeichnis dort, sind lax genug Berechtigungen gesetzt), und ich bin mir ziemlich sicher, dass ich Ihre üblichen dummen menschlichen Tricks behandelt habe. Hier ist der Code, der fehlschlägt:

%Vor%

Das Verzeichnis ist da - Ich habe den Pfad von FileZilla kopiert. Ich setze sogar die Berechtigungen auf 777 , sowohl in FileZilla als auch im Dateimanager auf dem HostGator Control Panel. Dieser Code generiert zwei Warnungen:

  

Nachricht:   move_uploaded_file (/public_html/flashsale/assets/img/products/Tsirloin.jpg)   [function.move-uploaded-file]: Fehler beim Öffnen des Streams: Keine solche Datei oder   Verzeichnis

     

Nachricht: move_uploaded_file () [function.move-uploaded-file]: Kann nicht   Verschiebe '/ tmp / phpI5GZ3S' zu   '/public_html/flashsale/assets/img/products/Tsirloin.jpg'

In dieser Reihenfolge. Also, die Datei wird hochgeladen, das Verzeichnis existiert und ist auf 777 gesetzt, was könnte ich sonst noch vermissen?

    
Fibericon 30.01.2013, 04:42
quelle

5 Antworten

13

Sie müssen das vollständige Verzeichnis nicht in die Datei einfügen. Versuchen Sie, /public_html/flashsale/ von Ihrem Link zu entfernen und sehen Sie, ob das funktioniert. Außerdem muss die Datei keine 777-Berechtigung haben. Ich selbst lade Dateien in Ordner mit 755 Berechtigungen hoch.

Sie können auch getcwd(); in dem Zielverzeichnis verwenden. Die Funktion gibt Ihnen das Verzeichnis, das Sie zum Verschieben Ihrer Datei benötigen. Quelle

    
shnisaka 30.01.2013, 04:45
quelle
5

Das Problem

%Vor%

Dies ist, was ich anfangs verwendet habe, um den Verzeichnispfad zu meinem Ordner / public_html / upload zu bekommen. $ dirpath enthält

%Vor%

Die Lösung (auf dem Server)

%Vor%

Da ich in einer Shared-Hosting-Umgebung bin, ist die richtige Methode, um move_uploaded_file zum Laufen zu bringen, dieses als Ziel: realpath (dirname (getcwd ())) gibt etwas wie folgt zurück:

%Vor%     
UWU_SANDUN 22.11.2015 09:52
quelle
1

Stellen Sie sicher, dass Sie den Pfad durchlaufen. public_html ist nicht erforderlich

%Vor%

Hoffe, das hilft

    
Ramaraju.d 30.01.2013 04:58
quelle
1

Für Ubuntu 14.04 mit XAMPP habe ich auch Probleme mit dem Upload, aber nachdem ich mit sudo chmod -R 777 destination behoben habe, funktioniert es gut.

Folgendes habe ich getan:

Temporärer Ordner zum Hochladen in Ubuntu 14.04 XAMPP ist / opt / lampp / temp /. Wenn ich meine Upload-Dateien in /opt/lampp/temp/testupload als Zielordner haben möchte, brauche ich die Konfiguration unten.

  1. Gehe zum temporären Ordner

    %Vor%
  2. Erstellen Sie den Ordner 'testupload' unter / opt / lampp / temp /

    %Vor%
  3. Ändern Sie die Berechtigung 777

    %Vor%
  4. PHP-Code

    %Vor%
Pao Im 27.11.2015 15:19
quelle
0

Lösung für Windows und ISS:

Der IUSR-Account benötigte Berechtigungen im Zielverzeichnis. Nicht das ISS_IUSR-Konto, nur das IUSR-Konto.

    
Hackmodford 28.06.2016 14:54
quelle

Tags und Links