PHP (встроенный) сервер не сохраняет загруженный файл на хост Windows (хотя «tmp_name» существует)

#php #file-upload

#php #загрузка файла

Вопрос:

У меня есть PHP 7, на котором работает встроенный сервер на моем компьютере с Windows 10, например:

 C:Usersuser>php -S 0.0.0.0:3001 -c php.ini
  

Где index.php является

 <?php
error_log(print_r($_FILES));
$new_image_name = "test.mp4";
ob_start();
var_dump($_FILES);
error_log(ob_get_clean(), 4);
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\".$new_image_name);
?>
  

и php.ini настроен для разрешения больших файлов, поскольку я пытаюсь получить файл фильма.

В любом случае, когда передача файла завершена, это то, что показывает мой var_dump

 PHP 7.0.11 Development Server started at Wed Oct 12 14:14:26 2016
Listening on http://0.0.0.0:3001
Document root is C:Usersuser
Press Ctrl-C to quit.
[Wed Oct 12 14:16:07 2016] 1
[Wed Oct 12 14:16:07 2016] array(1) {
  ["file"]=>
  array(5) {
    ["name"]=>
    string(10) "mytest.mp4"
    ["type"]=>
    string(9) "video/mp4"
    ["tmp_name"]=>
    string(44) "C:UsersuserAppDataLocalTempphpD528.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(3604790)
  }
}
  

Однако, C:UsersuserAppDataLocalTempphpD528.tmp никогда не существует и не существует C:test.mp4

Я предоставил полные права доступа к папке Temp .. Я не знаю, что еще попробовать

Комментарии:

1. выполнена какая-либо базовая отладка, например, проверка возвращаемого значения move_uploaded_file() ? Если вы НЕ переместите этот временный файл, PHP автоматически удалит его, когда скрипт существует, что означает, что если вызов move завершится неудачно, файл в любом случае будет автоматически удален. Вы просто ПРЕДПОЛАГАЕТЕ, что вызов move будет / никогда не завершался неудачей.

2. И перемещение почти наверняка завершается неудачей, потому что я очень сомневаюсь, что идентификатор пользователя вашего веб-сервера имеет разрешения на создание c:test.mp4 в КОРНЕ вашего системного диска.

3. Лол. Спасибо, @Marc B. Если я запускаю сервер из командной строки с повышенными правами, он работает. Не стесняйтесь отвечать, и я отмечу, что ass принят