PHP: move_uploaded_file () не удалось открыть поток: нет такого файла или каталога

Я пытаюсь заставить PHP перемещать загруженный файл из каталога tmp в постоянное место на моем веб-сервере. Это кажется достаточно простым, но я получаю эту ошибку:

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

Довольно прямолинейно, правда? Он не может найти папку назначения.

Мой вопрос: как мне указать желаемый целевой каталог?

Является ли ссылка относительно позиции сценария на сервере? Или это относительно URL-адреса? Или PHP DOCUMENT_ROOT ? Или файловая система ОС? Или что-то другое?

Я не могу найти ответ в документации PHP или даже в любом из подобных вопросов здесь, на SO ..

Может ли кто-нибудь помочь? Благодарю.

Solutions Collecting From Web of "PHP: move_uploaded_file () не удалось открыть поток: нет такого файла или каталога"

Простым способом отслеживания пути является определение абсолютного пути в вашем index.php

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

Затем просто используйте его так:

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

У меня была такая же проблема с моей загрузкой. Смотрите мой пример и, возможно, он может вам помочь.

Файл, который я создал, называется «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; } 

Это из положения сценария на сервере! Кроме того, в этой папке должны быть права на запись:

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

Вместо этого лучше использовать абсолютный путь таким образом:

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

Используйте абсолютный путь.

 $destination = dirname(dirname(dirname(dirname(__FILE__))))."/runtime/tmp/"; chown($destination, 0755); move_uploaded_file($info['tmp_name'], $destination.$info['name']); 

Это мое решение, я просто использую mkdir для создания каталога для размещения моей картинки, которую я хочу переместить. Желаю, чтобы это помогло.