Простое перемещение изображения PHP

Я пытаюсь переместить загруженное изображение (из Android), которое должно быть переименовано с помощью PHP ниже во втором примере, чтобы их имена не конфликтовали. Исходный пример ниже загружает файлы правильно, но может иметь конфликты имен. Ошибка, которую я испытываю, заключается в том, что функция move_uploaded_files дает сбой, и я не уверен, почему. Каталог выглядит так же, но я могу ошибаться, и проблема в том, что изображение никогда не перемещается из временного каталога. Прежде всего, я думаю, что это просто проблема с каталогом, поскольку исходный пример работает. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Пример, который я использую, находится здесь: Как переименовать загруженный файл перед сохранением в директорию?

Оригинал:

$uploaddir = './appphotos/';   
$absPath = 'https://'.$_SERVER['HTTP_HOST'].'/complaint_desk/appphotos/'; 
$file = basename($_FILES['userfile']['name']);
$uploadFile = $file;
$newName = $uploaddir . $uploadFile;

Новая попытка:

$temp = explode(".",$_FILES["userfile"]["name"]);

echo json_encode($temp);
$newfilename = rand(1,99999) . '.' .end($temp);
echo json_encode($newfilename);

$uploadFile = move_uploaded_file($_FILES["userfile"]["name"], "/var/www/complaint_desk/appphotos/" . $newfilename);    echo json_encode($uploadFile);

person user4619468    schedule 06.03.2015    source источник


Ответы (1)


Вы должны использовать функцию следующим образом:

if(move_uploaded_file($_FILES["userfile"]["tmp_name"], "./appphotos/" . $newfilename)) {
  echo json_encode($uploadFile); // why do you want to encode it?
} else {
  echo 'File failed to move';
}

Всегда проверяйте результат move_uploaded_file(). Кроме того, перед перемещением файл находится по адресу $_FILES["userfile"]["tmp_name"].


Кроме того, $absPath неверно. Он не должен начинаться с протокола http. Он должен выглядеть как /var/www/complaint_desk/appphotos/ или C:/complaint_desk/appphotos/.

person Raptor    schedule 06.03.2015
comment
Большое спасибо! В конце концов, это был каталог: /var/www/complaint_desk/appphotos/ - person user4619468; 06.03.2015