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?
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
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%Stellen Sie sicher, dass Sie den Pfad durchlaufen. public_html ist nicht erforderlich
%Vor%Hoffe, das hilft
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.
Gehe zum temporären Ordner
%Vor%Erstellen Sie den Ordner 'testupload' unter / opt / lampp / temp /
%Vor%Ändern Sie die Berechtigung 777
%Vor%PHP-Code
%Vor%Lösung für Windows und ISS:
Der IUSR-Account benötigte Berechtigungen im Zielverzeichnis. Nicht das ISS_IUSR-Konto, nur das IUSR-Konto.
Tags und Links php file-upload