php
  • validation
  • file-upload
  • 2011-08-01 13 views 2 likes 
    2

    私がコードで間違っていることは、ファイルタイプが.docフォーマットでサイズが0kbであっても常に 'ファイルタイプ.doc、.docx、.odt、最大ファイルサイズ2MBがサポートされています' 。ファイルタイプPHPの妥当性チェック

    if(($_FILES["file"]["type"] != 'application/octet-stream') || 
          ($_FILES["file"]["type"] != 'application/vnd.oasis.opendocument.text')|| 
          ($_FILES["file"]["type"] != 'application/msword')|| 
          ($_FILES["file"]["size"] > 200000)) 
         { 
          //echo $_FILES["file"]["size"]; 
          //echo $_FILES["file"]["type"]; 
          $this->assign_values('msg',"File types .doc,.docx,.odt and max file size 2mb supported"); 
          //echo "Error: " . $_FILES["file"]["error"] . "<br />"; 
         } 
    
    +0

    は、あなたのif節のコンポーネントを削除してください実行します本当です。 – calumbrodie

    答えて

    4

    は、ファイル・タイプ間||&&に変更する必要があります。 あるいはさらに良いは、許可されたタイプのリストと照合タイプをチェック:あなたはあなたが与えたパラメータの1を意味し、真であるとしているかを、使用している

    $allowedTypes = array('application/octet-stream', 'application/vnd.oasis.opendocument.text', 'application/msword'); 
    
    if(!in_array($_FILES["file"]["type"], $allowedTypes) || $_FILES["file"]["size"] > 200000) 
         { 
          //echo $_FILES["file"]["size"]; 
          //echo $_FILES["file"]["type"]; 
          $this->assign_values('msg',"File types .doc,.docx,.odt and max file size 2mb supported"); 
          //echo "Error: " . $_FILES["file"]["error"] . "<br />"; 
         } 
    
    +0

    ありがとう。今働いている。誰か私のコードで間違っているwhtsを教えてもらえますか? –

    +0

    書かれた言語のifステートメントは、「タイプがAではないか、タイプがBではないか、タイプがCではないか、サイズが20000より大きい」のようなものです。しかし、型は1つの値しか持つことができません。したがって、 "A"の場合は "タイプがBではありません"のチェックは真を返し、 "一致する"場合は許可されたタイプ "A"を返します。 – Peter

    0

    タイプを3回異なる値でチェックしているので、常にtrueを返してifをトリガーします。

    0

    あなたが使用しているOR(||)どちらのステートメントのいずれかの場合は、コードを使用すると、変更が表示されるまで

    関連する問題