Скорее всего, это проблема с разрешениями. Я собираюсь предположить, что у вас нет никакого прямого доступа к оболочке, чтобы проверить этот материал напрямую, поэтому вот как это сделать из скрипта:
Проверьте, существует ли каталог $target
:
$target = '/data/etc....';
if (!is_dir($target)) {
die("Directory $target is not a directory");
}
Проверьте, доступно ли это для записи:
if (!is_writable($target)) {
die("Directory $target is not writeable");
}
Проверьте, существует ли полное целевое имя файла / доступно для записи - возможно, оно существует, но не может быть перезаписано:
$target = $target . basename($_FILES['image']['name']);
if (!is_writeable($target)) {
die("File $target isn't writeable");
}
Помимо этого:
if(!(move_uploaded_file($_FILES['image']['tmp_name'], $target))) {
echo $_FILES['image']['error']."<br />";
}
Вывод параметра error
здесь бесполезен, он относится исключительно к процессу загрузки. Если файл был загружен правильно, но не может быть перемещен, это все равно будет отображать только 0
(например, константу UPLOAD_ERR_OK). Правильный способ проверки на наличие ошибок выглядит примерно так:
if ($_FILES['images']['error'] === UPLOAD_ERR_OK) {
// file was properly uploaded
if (!is_uploaded_File(...)) {
die("Something done goofed - not uploaded file");
}
if (!move_uploaded_file(...)) {
echo "Couldn't move file, possible diagnostic information:"
print_r(error_get_last());
die();
}
} else {
die("Upload failed with error {$_FILES['images']['error']}");
}