PHP move_uploaded_file не работает на общедоступном сервере - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь загрузить свой php проект на публичный сервер. Я сделал файл загрузки изображений при создании продукта или редактировании продукта. Он работает в localhost, но когда я перехожу на публичный сервер, он не работает. Я думаю, что часть move_uploaded_file не работает. Как я могу изменить ссылку? или я должен что-то менять? Когда я вижу Filzilla, я вижу удаленный сайт, который называется '/ www / eshopProject / inventory_images'. И индексный файл это / www / eshopProject / storeAdmin. Должен ли я изменить ссылку, как это? Я не знаю, как я могу изменить ссылку. Не могли бы вы помочь мне? загрузка изображения на публичный сервер не работает .. Это проблема безопасности? или что-то? Пожалуйста, помогите мне. Спасибо.

- index.php -

$pid = mysql_insert_id();
//Place image in the folder
$newname = "$pid.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/product_$newname");

Ответы [ 3 ]

6 голосов
/ 06 марта 2012

Прежде всего, проверьте права доступа к каталогу, как указано в комментариях.Если у вас есть доступ к оболочке, то «chmod 777 target_dir» или «chmod 707 target_dir» должно быть достаточно.

Вторая попытка отладки с использованием функций if и file_exists (http://php.net/manual/en/function.file-exists.php).

Что-то вроде этого.

$uploadedFile = $_FILES['fileField']['tmp_name'];
$destination = "../inventory_images/product_$newname";

if(file_exists($uploadedFile))
{
   echo "file uploaded to temp dir";
}
else
{
   echo "file upload failed";
   exit();
}

if(move_uploaded_file($uploadedFile, $destination))
{
   echo "upload complete";
}
else
{
   echo "move_uploaded_file failed";
   exit();
}

Вы также можете проверить свой текущий рабочий каталог, используя FILE или DIR константы (http://php.net/manual/en/language.constants.predefined.php).

Попробуйте это.

echo __FILE__;
echo dirname(__FILE__);
echo __DIR__;
1 голос
/ 12 мая 2017

Убедитесь, что у вас есть права на запись в папку, которую вы пытаетесь загрузить.

0 голосов
/ 20 июля 2018

Я рекомендую установить для папок разрешения «755» и повторить попытку. Это сделало бы разрешения немного жестче.

...