2016-09-11 20 views
0

ユーザーからイメージを取得しようとしています。ファイルサイズが2 MBを超えると、スクリプトは2 MBのファイルサイズ制限があるというメッセージをユーザーに返します。このため、私は次のようなチェックを続けました -ファイルサイズが2 MBを超えると、getimagesizeは警告を返します。

if($_FILES["QuestionImage"]["size"] > 2097152){ 
    echo "File size is more than 2 MB"; 
}else{ 
    $check = getimagesize($_FILES["QuestionImage"]["tmp_name"]); 
    ...... 
} 

ただし、ファイルサイズが2 MBを超えると、スクリプトはまだelseセクションに入ります。なぜこれが起こっているのか分かりません。私は1 MBの制限でテストし、1.4 MBのファイルをアップロードしようとしました。その場合、コードは完全に機能します。しかし、同じコードでファイルサイズが2 MBの場合、それはまだelseセクションに入り、getimagesizeはエラーを返します。任意のポインタ?

+0

どのくらいの2MBのテストですか?あなたは5MBのようなものをテストしていますか?私は2087152バイトが正確に2MBだとは思わない。 –

+0

'$ _FILES [" QuestionImage "] [" size "]'の値を出力し、それがあなたが期待しているものであることを確認してください。 – ceejayoz

+0

それはタイプミスでした。私はそれを修正しました。 – soumyajyoti

答えて

0

この解決策は他の人によって投稿され、その後削除されました。できます。しかし、私は基本的な問題を理解する必要があります

if(filesize($_FILES['QuestionImage']['tmp_name']) > 2097152){ 
    echo "File size is more than 2 MB"; 
}else{ 
    $check = getimagesize($_FILES["QuestionImage"]["tmp_name"]); 
    ...... 
    } 
+0

2 MB =(2 * 1024 * 1024)バイト= 2087152バイトではなく、2097152バイトを乗算します。 –

+0

これはタイプメイトでした。私が言っていることは、上記の方法でファイルサイズにアクセスすると動作するということです。しかし元のものはそうしなかった。なぜ – soumyajyoti

+0

@ MarkBの答えは、ここで*起こっているかもしれないことをあなたに見せてくれるでしょう。[http://stackoverflow.com/a/14758212/5517143](http://stackoverflow.com/a/14758212/5517143) –

関連する問題