2016-08-09 8 views
1

私はfinfoに関する問題を抱えていますが、私は何が欠けているのか分かりません。finfo()でPDFファイルをフィルタリングしてアップロードするにはどうすればよいですか?

また、サイドノートに、

$メッセージ= $ upload_errors [$エラー]。

私が間違ったアップロードディレクトリを入れてテストすると、実際にはエラーは表示されません。それ以外はうまく動作します。

これは、フォームからの複数の入力ファイルのアップロードです:すべての最初の

if(isset($_FILES['myFile'])){ 
$name_array = $_FILES['myFile']['name']; 
$tmp_name_array = $_FILES['myFile']['tmp_name']; 
$type_array = $_FILES['myFile']['type']; 
$size_array = $_FILES['myFile']['size']; 
$error_array = $_FILES['myFile']['error']; 

     $upload_dir = "uploads/"; 

     for($i = 0; $i < count($tmp_name_array); $i++){ 

      $finfo = finfo_open(FILEINFO_MIME_TYPE); 
      $mime = finfo_file($finfo, $tmp_name_array[$i]); 
      $ok = false; 
      switch ($mime) { 
       case 'application/pdf' 
        $mimeok = true; 
       default: 
        die("Unknown/not permitted file type"); 
      } 

      // 1 megabyte is 1,048,576 bytes. 5 megabyte limit 5242880 
      if ($size_array[$i] > 5242880) { 
       echo "Error: Document size exceeds maximum limit of 5 MB. Please reduce the file size and retry upload"; 
      }else{ 
       if ($mimeok = false) { 
           echo "Not correct file type<br>"; 
       } else{ 

        if (move_uploaded_file($tmp_name_array[$i], $upload_dir.$name_array[$i])){ 
         echo $name_array[$i]." upload is complete<br>"; 

        } else { 

        $error = $_FILES['file_upload']['error']; 
        $message = $upload_errors[$error]; 
        echo $message; 
        } 

       } 
      } 
     } 
} 

答えて

1

、あなたが$okを初期化しているが、スクリプトの残りのためにあなたが$mimeok

しかしを使用しています主な問題は、あなたの代わりに小切手の代わりに割り当てを行うためです:

if ($mimeok = false) 
      ^should be == or even === 
+0

私は気が気になりません。 Duh ..ちょうどそれを逃した。 PHPがエラーになるので、他に何かがあるはずです。エラーを引き起こすのはfinfo部分だけです –

+0

次の2行のうちの1つです:$ finfo = finfo_open(FILEINFO_MIME_TYPE); \t \t \t \t $ mime = finfo_file($ finfo、$ tmp_name_array [$ i]); –

+1

'$ error = $ _FILES ['file_upload'] ['エラー'];'は '$ error = $ error_array [$ i]'でなければなりません – NDM

関連する問題