it-swarm.com.de

PHP: move_uploaded_file () konnte den Stream nicht öffnen: Keine solche Datei oder Verzeichnis

Ich versuche, PHP zu veranlassen, eine hochgeladene Datei aus dem tmp-Verzeichnis an einen festen Ort auf meinem Webserver zu verschieben. Es scheint einfach genug zu sein, aber ich bekomme diesen Fehler:

Unable to move 'C:\UniServer\tmp\php3F62.tmp' to 'static/images/slides/1/1.jpg'

Ziemlich unkompliziert, richtig? Der Zielordner kann nicht gefunden werden.

Meine Frage ist: Wie referenziere ich auf das gewünschte Zielverzeichnis?  

Ist die Referenz relativ zur Position des Skripts auf dem Server? Oder ist es relativ zur URL? Oder der PHP DOCUMENT_ROOT? Oder das Dateisystem des Betriebssystems? Oder etwas anderes?

Ich kann die Antwort nicht in der PHP -Dokumentation oder in einer der ähnlichen Fragen hier auf SO finden.

Kann jemand helfen? Vielen Dank.

14
Chuck Le Butt

Eine einfache Möglichkeit, den Pfad zu verfolgen, besteht darin, den absoluten Pfad in Ihrer index.php zu definieren

define ('SITE_ROOT', realpath(dirname(__FILE__)));

Dann benutze es einfach so:

move_uploaded_file($_FILES['file']['tmp_name'], SITE_ROOT.'/static/images/slides/1/1.jpg');
30

Ich hatte das gleiche Problem mit meinem Upload. Sehen Sie mein Beispiel und vielleicht kann es Ihnen helfen.

Die Datei, die ich erstellt habe, heißt "Uploads".

$uploads_dir = 'uploads/';
$name = $_FILES['userfile']['name'];
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{       
    //in case you want to move  the file in uploads directory
     move_uploaded_file($_FILES['userfile']['tmp_name'], $uploads_dir.$name);
     echo 'moved file to destination directory';
     exit;
}
3
Elina
$destination = dirname(dirname(dirname(dirname(__FILE__))))."/runtime/tmp/";
chown($destination, 0755);
move_uploaded_file($info['tmp_name'], $destination.$info['name']);

Dies ist meine Lösung. Ich verwende einfach mkdir, um ein Verzeichnis zu erstellen, in dem ich mein Bild ablegen kann, das ich verschieben möchte. Ich wünschte, es hilft.

0
Wayne Lee

Es ist von der Position des Skripts auf dem Server! Darüber hinaus benötigen Sie Schreibberechtigungen für diesen Ordner:

'static/images/slides/1/1.jpg'

Verwenden Sie stattdessen einen absoluten Pfad auf diese Weise:

'C:\UniServer\***\static\images\slides\1\1.jpg

Verwenden Sie einen absoluten Pfad.