首页 文章

上传大文件时清空$ _POST和$ _FILE变量

提问于
浏览
2

我试图上传一个20MB大小的文件 . 现在默认表单上传大小为8MB . 当我上传这样的文件时,我得到$ _POST和$ _FILE变量为空 . 现在我想检查一下文件大小 . 如果我将这两个变量都清空,我该如何进行这样的检查?请给我一些建议

5 回答

  • 1

    不知道你真正想要的是什么 . 但您可以使用以下方法探测收到的内容大小:

    $_SERVER["CONTENT_LENGTH"]
    

    这应该告诉POST请求主体有多大 . (如果中止上传,该数字可能会高于实际收到的内容 . )

  • 1

    除非出现任何代码错误,否则最有可能的是 20MB 超出了您的上传限制 . 永久更改 php.ini 文件 .

    使用

    ini_set("upload_max_filesize", "30M");
    

    仅为该会话设置最大上载大小 . 对于POST

    用这个

    ini_set("post_max_size", "30M");
    

    检查尺寸

    echo ini_get("post_max_size") . "\n";
       echo ini_get("upload_max_filesize");
    
  • 2

    结帐php://输入,允许的8mb部分应该在那里 .

    例如 echo file_get_contents('php://input');

  • 4

    您可以动态设置上传的最大文件大小 .

    在您尝试上传文件的上传功能中写下以下语句 . 这将增加限制高达50 MB

    ini_set("upload_max_filesize", "50M");
    

    如果要检查文件变量,可以使用备用HTTP_POST_FILES

    $theFileSize = $HTTP_POST_FILES['file']['size'];
    

    希望这可以帮到你 .

    谢谢 .

  • 1

    使用 MAX_FILE_SIZE 作为隐藏输入字段,这将阻止用户等待文件大于限制并赢得't execute your code so the variables won' t为空...

    MAX_FILE_SIZE隐藏字段(以字节为单位)必须位于文件输入字段之前,其值是PHP接受的最大文件大小 . 应始终使用此表单元素,因为它可以节省用户等待传输大文件的麻烦,只是发现它太大而传输失败 . 请记住:在浏览器端愚弄此设置非常简单,因此不要依赖此功能阻止更大尺寸的文件 . 它仅仅是应用程序客户端用户的便利功能 . 但是,最大大小的PHP设置(在服务器端)不能被愚弄 .

    http://www.php.net/manual/en/features.file-upload.post-method.php

相关问题