Более надежная проверка move_uploaded_file?

Итак, я создаю загрузчик файлов ajax + php.

В конце всех проверок, как обычно, у меня есть такой код:

if(!move_uploaded_file($tempFile,$targetFile)){
  header("HTTP/1.0 500 Internal Server Error");
  $response = array (
    'status'    => 'error',
    'file_link' => $targetFile
  );
} else [...ok...]

[...]

echo json_encode($response);
exit;

Он загружает файл, если $targetFile верен. Проблема в обратном: move_uploaded_file всегда будет возвращать истину, даже если я установил для $targetFile значение 'WTF' ..

Итак, моя программа ajax не получает ошибок, если целевой каталог неверен или недоступен для записи. Итак, есть ли лучший способ проверить, действительно ли файл был загружен после выполнения move_uploaded_file()?

Похоже, что WTFявляется доступен для записи… !?

deceze 10.08.2018 15:05

Установка целевого файла как wtf означает, что он записывает его по пути по умолчанию, который использует php, который должен быть разрешен для записи, чтобы не вызывать ошибку. Есть ли причина, по которой вы не можете полностью контролировать путь / имя $targetFile ??

IncredibleHat 10.08.2018 15:06

Вы также можете использовать is_dir() и is_writeable(), прежде чем пытаться переместить файл, если по какой-то причине вы не знаете, в какой папке он сохранен или какие у нее разрешения (что вам следует знать).

Magnus Eriksson 10.08.2018 15:08

Я не знал, что он будет загружен в несуществующий каталог. Для меня это довольно странно. Во всяком случае, это все. Хорошо, мне просто нужно сделать еще несколько проверок вручную. Спасибо

Luca Reghellin 10.08.2018 15:15

Хорошо. Каталог существует. Вы можете покопаться на своем сервере и поискать, где это имя файла wtf находится :) Для меня, например, он бы сохранил это в docroot.

IncredibleHat 10.08.2018 15:16

Да, ты прав

Luca Reghellin 10.08.2018 15:17

просто проверьте if(file_exists('path_to_file/filename.ext')) в вашем целевом пункте назначения после его перемещения.

Tschallacka 10.08.2018 15:54
0
7
24
0

Другие вопросы по теме