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

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

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

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

Мой вопрос:How do I reference the desired target directory?

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

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

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

 Vic Seedoubleyew12 апр. 2016 г., 17:57
Один часто сталкивается с этой ошибкой, и чтобы быстро устранить ее, выполните следующие действия:stackoverflow.com/a/36577021/2873507
 Pekka 웃08 июн. 2012 г., 17:02
Он формирует позицию сценария на сервере. Лучше всего использовать абсолютный путь
 Shiplu Mokaddim08 июн. 2012 г., 17:03
использоватьDIRECTORY_SEPARATOR постоянный путь, чтобы сделать его независимым от платформы.

Ответы на вопрос(4)

и, возможно, он может вам помочь.

Файл, который я создал, называется & quot; загружает & quot ;.

$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;
}
Решение Вопроса

шем index.php

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

Тогда просто используйте это как:

move_uploaded_file($_FILES['file']['tmp_name'], SITE_ROOT.'/static/images/slides/1/1.jpg');
 17 февр. 2015 г., 00:29
просто сомнение ... это не $ _FILES ['file'] ['tmp_name &]; вместо $ _FILES [' file & apos;] ['temp_name & apos;]
 Chuck Le Butt08 июн. 2012 г., 17:36
Это правильное решение, спасибо! (Это немного беспокоит, что несколько человек думали, что DIRECTORY_SEPARATOR поможет, хотя: - /)
 12 апр. 2016 г., 17:57
Здесь есть контрольный список для устранения этой частой ошибки здесь:stackoverflow.com/a/36577021/2873507
 08 июн. 2012 г., 17:46
Я никогда не использовал его, id использовал его, только если я собирался вывести путь к пользователю. Спасибо за согласие :)
 08 июн. 2012 г., 17:10
Вот как я это делаю. Это лучше, чем использование корня документа, потому что таким образом вы можете разместить свое приложение в поддиректории.
$destination = dirname(dirname(dirname(dirname(__FILE__))))."/runtime/tmp/";
chown($destination, 0755);
move_uploaded_file($info['tmp_name'], $destination.$info['name']);

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

вам нужно иметь права на запись в эту папку:

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

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

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

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

 12 авг. 2015 г., 15:08
В чем причина понижения голоса?
 08 июн. 2012 г., 17:05
@DjangoReinhardt Спасибо за информацию, но просто чтобы быть очень осторожным, зная ОС. :)
 13 авг. 2015 г., 09:22
Ах ... Хорошо, тогда.
 Chuck Le Butt12 авг. 2015 г., 17:24
Не знаю, но, может быть, потому что у вас все еще есть ошибочная информация о Windows? У меня тоже есть отрицательное мнение по этому вопросу.
 Chuck Le Butt08 июн. 2012 г., 17:05
PHP принимает и \ и / как допустимые разделители пути во всех ОС.

Ваш ответ на вопрос