2016-06-19 7 views
0

私はイメージを受け入れるいくつかのフォームを持っています。しかし、私は何かを理解していないに違いありません。 基本的には、画像が選択されたら、それをチェックし、後でアップロードしたいと思う。画像が選択されていない場合は、必須ではないので気にしません。フォームにイメージを送信しないときのPHP

アップロードする画像が選択されていない場合、画像はまだチェックされていますが、エコーは発生しません。何が起こっている?

 if(isset($_FILES["fileToUpload"])) 
     { 
      $target_file = $_FILES["fileToUpload"]; 
      include ('../config/imageCheck.php'); 
     } 
     else 
     { 
      echo "no image"; 
     } 

P.S.私は私の質問が最高でない場合申し訳ありません、最後の5日間、この大学のプロジェクトに取り組んできました! :)

+0

単純 'IF($ _ FILES [ 'fileToUpload'] [ '名前'] == ""){エコー 'はイメージの'}追加ない'または '(空の場合($ _FILES ['fileToUpload'] ['name'])){} 'あなたに合ったもの。 – Matt

答えて

0

あなたはファイルがアップロードされているか否かをチェックするためにis_uploaded_file()機能を使用する必要がありますので、あなたのコードは次のようにする必要があります:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])){ 
    // A file has been uploaded 
    $target_file = $_FILES["fileToUpload"]; 
    include ('../config/imageCheck.php'); 
}else{ 
    // User hasn't uploaded any file 
    echo "no image"; 
} 

以上、is_uploaded_file()と一緒にfile_exists()機能を使用して、のようなこの:

:ここ

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name']) && file_exists($_FILES['fileToUpload']['tmp_name'])){ 
    // A file has been uploaded 
}else{ 
    // User hasn't uploaded any file 
} 

は言及されています10

0

このコードの反対側には何が起こっているのか分かりませんが、イメージアップロード要素を含むフォームがある場合は、イメージが選択されていないとおそらく "false"を返します。そのような場合、 "偽"または "0"も値であるため、 "isset"関数は "false"または "0"を返し、issetは真となります。

たぶん、あなたはあなたのコードを変更する必要がありますドキュメントによると

if($_FILES["fileToUpload"]) 
0

"Error Messages Explained"$_FILES["fileToUpload"]['error']にはファイルがアップロードされなかった場合には、値4を持つことになります。

if($_FILES['picture']['error'] != 4) { 
    echo "Do stuff..."; 
} else { 
    echo "No image"; 
} 
関連する問題