2016-06-19 2 views
0

Я работаю над проектом, но при тестировании функции загрузки изображений он полностью меняет. Сайт по ссылке Portal.website.com (так не WWW, Незнайка, если это имеет значение)PHP, отказывающийся загрузить картинку

Во всяком случае здесь сообщение я получаю:

Предупреждение: move_uploaded_file (IMG/загрузки/IMG_20160402_244056496.jpg) [function.move-закачанный-файл]: не удалось не удалось открыть поток: нет такого файла или каталога в /home/xxx/domains/website.com/public_html/portal/artikeltoevoegen.php на линии 33

И

Предупреждение: move_uploaded_file() [function.move-uploaded-file]: невозможно переместить '/ tmp/phpf277z2' в 'img/uploads/IMG_20160402_244056496.jpg' в /home/xxx/domains/website.com/public_html/portal /artikeltoevoegen.php на линии 33

а вот PHP часть сама форма является довольно стандартным и работает безупречно

if (isset($_POST['uploadArticle'])) 
{ 
    $title = $_POST['title']; 
    $article = $_POST['article']; 
    $files = $_FILES['files']; 
    $valid_formats = array("jpg", "png", "gif", "zip", "bmp"); 
    $max_file_size = 1024*1000; //1000 kb 
    $count = 0; 
    foreach ((array) $_FILES['files']['name'] as $f => $name) 
    {  
     if ($_FILES['files']['error'][$f] == 4) 
     { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$f] == 0) 
     {    
      if ($_FILES['files']['size'][$f] > $max_file_size) 
      { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)) 
      { 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else 
      { 
       // No error found! Move uploaded files 
       if(move_uploaded_file($_FILES["files"]["tmp_name"][$f],"img/uploads/".$name)) 
       { 
        $count++; // Number of successfully uploaded file 
        echo $count; 
       } 
      } 
     } 
    } 
} 
+1

ли вы проверить, что папка '/ главная/ххх/домены/website.com/public_html/портал/IMG/uploads' фактически уже существует? Он не будет создавать папки для вас таким образом. –

+0

Он делает, я сам его создал –

+1

Какие у вас разрешения? вы можете опубликовать вывод 'namei -l/home/xxx/domains/website.com/public_html/portal/img/uploads' пользователя, который веб-сервер работает, как требуется + x для всех каталогов в пути и' + x' на последнем – exussum

ответ

0

Как ошибка предлагает путь, который вы передаете в move_uploaded_file не существует.

Если папка IMG находится в том же каталоге, что и файл PHP вы звоните move_uploaded_file из, попробуйте использовать относительный URL:

if(move_uploaded_file($_FILES["files"]["tmp_name"][$f],"./img/uploads/".$name)) 

, добавив ./ перед IMG

+0

Я проверил это. Но это не сработало ни –

+0

Вы пытались поместить полный URL? –

+0

Не повезло, к сожалению –

2

Okay так это были разрешения сервера для папок, которые я пытался написать тоже. Я изменил его с 755 до 777, теперь он работает отлично.

Надежда кто-то может использовать эту информацию

+0

chmod важен, так что chown; убедитесь, что пользователь и группа веб-сервера также владеет папкой lucas – unixmiah

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