2015-02-24 2 views
1

Я пытаюсь сделать загрузку файла с помощью PHP. Для этого я использую $ _FILE, но я не понимаю, почему это не работает. В поисках решений я нашел предложение использовать $ _FILE, но все равно не могу этого сделать. Чтобы увидеть, работает ли загрузка, я использую Postman из Chrome. Я использую Ubuntu с LAMP.Попытка сделать загрузку файла с помощью PHP?

Как я мог это сделать?

<?php 

$arquivo = isset($_FILES["file"]) ? $_FILES["file"] : FALSE; 

if(!$arquivo) { 
    echo "You can not access this file directly!"; 
}else{ 
    $diretorio = "/home/fernando/Imagens/"; 

    if (move_uploaded_file($arquivo["tmp_name"], $diretorio.$arquivo["name"])) { 
      echo "File upload ok!"; 
    }else{ 
     echo "File not upload!"; 
    } 
} 

?> 

Исключение

<br /> 
<b>Warning</b>: move_uploaded_file(/home/fernando/Imagens/avatar_empresa.jpg): failed to open stream: Permission denied in 
<b>/var/www/TelefonesUteis/ws/add_file.php</b> on line 
<b>12</b> 
<br /> 
<br /> 
<b>Warning</b>: move_uploaded_file(): Unable to move '/tmp/phpq9AlVw' to '/home/fernando/Imagens/avatar_empresa.jpg' in 
<b>/var/www/TelefonesUteis/ws/add_file.php</b> on line 
<b>12</b> 
<br /> 

Почтальон

enter image description here

+0

Вы получаете какие-либо ошибки в журналах? – Halfstop

+0

Добавьте сообщение об ошибках в начало вашего файла (ов) сразу после открытия '

+1

Также отправьте HTML-форму – ByteHamster

ответ

2

Ваш сценарий не имеет разрешения на добавление и/или выполнять файлы в /home/fernando/Imagens/. Вы должны будете использовать chmod:

chmod -R 775 /home/fernando/Imagens

+0

'775' должно быть достаточно, не нужно ничего что-то выполнять? – cybermonkey

+1

Да, вы правы, '775', вероятно, является более безопасной альтернативой в большинстве случаев. Отредактировал мой ответ. – Marcus

+0

Помните, что CHMOD предоставляет только разрешения на текущие файлы там, если вы собираетесь добавлять новые папки/файлы, они будут заблокированы по умолчанию, вам придется повторять команду chmod каждый раз, когда ваше приложение загружает или генерирует новую вещь внутри папка. Работа с веб-приложениями в Linux (которые используют загрузки или управление файлами) - это HEADACHE, достаточно сказал хахаха, приготовьтесь использовать много консолей. – JuanBonnett

Смежные вопросы