2016-06-19 3 views
0

私はプロジェクトに取り組んでいますが、画像をアップロードする機能をテストするときにエラーが発生します。PHPが画像のアップロードを拒否しています

警告:move_uploaded_file(IMG /アップロード/ IMG_20160402_244056496.jpgサイトは(そうではないWWWは、知らんことが重要な場合)

とにかく、ここでは私が得るメッセージであるPortal.website.comリンク上にあります)[function.moveアップロードファイル]:ストリームをオープンに失敗しない:/home/xxx/domains/website.com/public_html/portal/artikeltoevoegen.phpでそのようなファイルやディレクトリを行に33

そして、

警告:move_uploaded_file()[function.move-uploaded-file]:/home/xxx/domains/website.com/public_html/portalの '/ tmp/phpf277z2'を 'img/uploads/IMG_20160402_244056496.jpg'に移動できませんライン33

上/artikeltoevoegen.phpそしてここでは、フォーム自体はかなり標準であり、エラーがあなたがmove_uploaded_fileに渡しているパスが存在しない通り完璧に

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

を使用することができますが、フォルダは、 '/ホーム/ XXX /ドメイン/ website.com/public_htmlの/ポータル/ IMG/uploads'実際にすでに存在していることを確認しましたか?この方法でフォルダを作成することはありません。 –

+0

それは自分で作成しました –

+1

権限は何ですか?ウェブサーバが実行しているユーザが、パス内のすべてのディレクトリ上でニーズ+ xとして 'name -l/home/xxx/domains/website.com/public_html/portal/img/uploads'の出力を投稿できますか?最後の1つに – exussum

答えて

0

働くPHPの一部です。

のimgフォルダがあなたからmove_uploaded_fileを呼び出しているPHPファイルと同じディレクトリにある場合は、相対URLを使用してみてください:そうIMG

+0

私はそれをチェックしました。しかし、どちらもうまくいかなかった –

+0

あなたは完全なURLを入れてみましたか? –

+0

不運にも運がない –

2

オーケーの前に./追加することにより、

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

を私はあまりにも書き込みしようとしていたフォルダのサーバーのアクセス許可になりました。 755から777に変更しました。今はうまくいきます。

ホープ誰かがこの情報

+0

chmodはとても重要ですのでchownです; lucasを所有しているWebサーバーのユーザーとグループであることを確認してください – unixmiah

関連する問題