9

これは私のアップロードフォームです:

<form action="uploads.php" method="post" enctype="multipart/form-data">
    <input name="fileupload" type="file" multiple>
    <button>Upload</button>
</form>

私の最大アップロードサイズは次のように設定されています:

; Maximum allowed size for uploaded files.
upload_max_filesize = 5M

; Must be greater than or equal to upload_max_filesize
post_max_size = 5M

それより大きいファイルをアップロードすると、5Mvar_dump($_FILES)は空になります。私はそれを行うことができます:

if($_FILES){
    echo "Upload done!";
}

$_FILESファイルが 5M より大きい場合は設定されません。しかし、これは少し奇妙です。どうやってそれをしますか?

編集:

5M を超えるファイルの var_dump:

array(0) {
}

ファイルの var_dump <= 5M:

array(1) {
  ["fileupload"]=>
  array(5) {
    ["name"]=>
    string(13) "netzerk12.pdf"
    ["type"]=>
    string(15) "application/pdf"
    ["tmp_name"]=>
    string(22) "/tmp/uploads/phpWhm8M0"
    ["error"]=>
    int(0)
    ["size"]=>
    int(352361)
  }
}
4

4 に答える 4

5

ロブが述べたように、あなたはpost_max_sizeあなたよりも大きくなければなりませんupload_max_filesize

その後、アップロードされたファイルが大きすぎる$_FILES['fileupload']['error']かどうかを確認できます。UPLOAD_ERR_INI_SIZE

だからあなたのphp.iniセットで

; Maximum allowed size for uploaded files.
upload_max_filesize = 5M

; Must be greater than or equal to upload_max_filesize
post_max_size = 10M

あなたのuploads.phpチェックで

if($_FILES['fileupload']['error'] === UPLOAD_ERR_INI_SIZE) {
    // Handle the error
    echo 'Your file is too large.';
    die();
}
// check for the other possible errors 
// http://php.net/manual/features.file-upload.errors.php
于 2013-09-02T08:05:31.627 に答える
-1

最大許容ファイル サイズを 5M より大きく設定してから、ファイル サイズが 5M を超えているかどうかを PHP で確認してください。ウェブサーバーの投稿本文のサイズも新しいサイズで更新されていることを確認してください。

php ini に基づいてファイル サイズを制限することは、制限されるため、最善の解決策ではありません。別のスクリプトで別のファイルが 3MB を超えていないことを確認したい場合はどうすればよいでしょうか?

 if ($_FILES['fileupload']['size'] > 5242880) // 5242880 = 5MB
      echo 'your file is too large';
于 2013-09-02T07:44:09.410 に答える