上载具有laravel5.4文件大小的文件

时间:2019-03-13 06:21:42

标签: php laravel

我目前有一个带有文件上传的表单,在该文件上传中,我有一个验证,可以确保它是图像或文档,还可以确保大小不能超过 2M >:

'insurence_document' => 'required|mimes:jpeg,png,jpg,pdf,doc,docx:|max:2048',

但是我不明白,我设置的验证规则应该阻止它,即使它是 .zip!也不是正确的mime类型。但是,如果我上传的是较小的 .zip ,则可以正常运行。因此,问题似乎出在更大的文件上。

我出错,例如警告:

  

24479807字节的POST内容长度超过了8388608的限制   第0行上的“未知”中的字节数

与上述错误无关,与laravel验证不适用于大型上传文件有关。我希望文件大小仅保持2MB。

我希望仅通过laravel验证来完成

4 个答案:

答案 0 :(得分:0)

8388608字节为8M ,默认文件上传大小为 2MB

打开 php.ini 文件。在 php.ini 文件中找到这些行,并将其替换为以下数字:upload_max_filesize = 64M保存所做的更改,然后尝试再次上传该文件。

您可以在 xampp / php / php.ini (Windows用户)文件中找到该路径,并且必须重新启动服务器

答案 1 :(得分:0)

我将为此创建一个自定义的Laravel验证规则,以弄清为什么它会传递Zip文件和2mb文件大小。在那里,您将能够手动处理验证,并查看为什么通过您要设置的规则。如果您知道了,我相信您将能够找到发生这种情况的原因。

答案 2 :(得分:0)

在您的 php.ini 文件中使用#include <somelib/somelib.h> #include <nlohmann/json.hpp> #include <ifstream> int main() { auto c = somelib::read_configuration("config.json"); nlohmann::json j; std::ifstream i("another.json"); i >> j; return 0; }

答案 3 :(得分:0)

如果超过php限制,则服务器将在上传到达您的验证器之前拒绝上传。这样,它将不会产生验证消息,但是php将引发错误。 因此,即使文件类型与您在mime上设置的rule不同,您也不会收到该rule的消息,因为它无法到达。

另一种情况是,如果您在required上设置了rule并且文件超出了php限制,那么您将收到来自validaiton的消息:The field is required。发生这种情况的原因与前面提到的相同,因为文件未到达验证器,因此验证器会将输入视为空白字段,并抛出required消息。

解决方案是在您的php.ini中更改post_max_sizeupload_max_filesize

祝您编程愉快!

编辑::如果您想在超过post_max_sizeupload_max_size的限制时捕获php产生的错误,您可以看到我的答案:here