php - Laravel 使用 ajax 验证文件最大大小
问题描述
我正在通过 axios 将数据上传到 Laravel 中的后端。在这些数据中,我发送了一张图片。在我的本地开发环境(Homestead)中,一切正常,当我尝试上传大于 2048 KB 的图片时,我从后端收到一条错误消息,指出文件太大。
这是我的图片验证字符串之一:
$this->validate($request, [
...
'infrastructure_image' => 'image|max:2048|mimes:jpg,jpeg,png'
...
]);
这里我尝试上传大于 2048 KB 的图片:
在这里,我在线尝试了同样的事情(使用 Laravel Forge 部署在服务器上):
所以使用相同的代码,我有两个不同的结果。起初,我认为这可能是 PHP 的配置,而 Homestead 可能比我的生产服务器上更宽松。因此,我将有关文件上传的所有值更改为,例如,不小于 2048KB,这将导致 413 错误。
现在我在 PHP-FPM php.ini 文件中有:
post_max_size = 8M
upload_max_filesize = 8M
我通过 Forge 重新启动了 PHP-FPM。
还是一样的错误。
我在这里错过了什么吗?这怎么能用相同的代码给我两个不同的结果?
我还意识到的一件事是,在本地,文件似乎没有上传(可能是一种错误的印象,因为在本地 -> 本地上传确实更快)。但是在网站上上传时,我看到文件正在上传。不是上传文件太大了吗?或者无论发生什么,post 请求发送文件(不仅仅是它的信息)然后 Laravel 检查大小并在文件太大时返回错误。
在此先感谢您的帮助!
解决方案
推荐阅读
- html - 如何使用 flex 模型给出相等的宽度跨度?
- c# - 如何使用 C# 将带有字体颜色的文本添加到 word 文档?
- git - Git:如何在 VSTS Git 中强制执行工作项链接检查策略?
- python - 过滤数据框中的反向行(熊猫)
- laravel - Laravel 从嵌套关系中提取一个数组
- visual-studio - 错误 MSB4062:无法从程序集中加载“Xamarin.Forms.Build.Tasks.GetTasksAbi”任务
- kubernetes - Running Kubernetes Locally via minikube
- firebase - 从 Firebase 接收 arduino(esp8266) 传感器数据
- java - thread wait for the connection to redis when use brpop/blpop
- javascript - How to keep Notification click event after refresh the page in web?