gpt4 book ai didi

php - Laravel 6.0 上传文件时出现"SplFileInfo::getSize(): stat failed"异常

转载 作者:行者123 更新时间:2023-12-03 22:30:48 26 4
gpt4 key购买 nike

我正在使用 Laravel 6.0 构建一个简单的图片上传系统。

但出于某些奇怪的原因,我一直遇到“SplFileInfo::getSize(): stat failed”异常,即使图像已成功上传到正确的文件夹...我可以做些什么来解决 1) 跳过这个异常并隐藏它 2) 完全修复它?

我确实看到了将 max_file_size 和 post_max_size 等更改为更高值并重新启动 Apache 的解决方案。我试过了,但它也没有用……而且看起来没有任何明确的解决方案。

这是我 Controller 上的上传功能

public function fileUpload(Request $request) {
$this->validate($request, [
'img' => 'required|image|mimes:jpeg,png,jpg,',
]);

if ($request->hasFile('img')) {
$image = $request->file('img');
$size = $image->getSize();
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < 5; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)]; // Generate random 5 character name...
}
$name = $randomString.'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('storage'.'\\'.$request->input('post'));

// Store Image Information //
$data = new Photo();
// Get post number //
$data->order = $request->input('post');
$data->filename = $name;
$data->location = $destinationPath;
$data->save();

// Now move to the destination path //
$image->move($destinationPath, $name);

return refresh();
}
}

我正在使用 MySQL 来存储照片信息,例如图像与哪个帖子相关联、 Controller 生成的文件名以及图像在机器中的存储位置...如您所见,我是为组织目的为每个帖子创建单独的文件夹...

目标是至少禁用异常原因,否则整个事情都正常...理论上我应该在上传完成后刷新页面。

最佳答案

伙计们,我想通了......

可能需要在 Laravel 中进行一个小的更新来解决这个问题……因为这是一个奇怪的“错误”。

所以,显然,您必须执行 getSize();,在我的例子中是 $size = $image->getSize(); 并将该值存储在某处它位于 SQL 数据库中……即使您不需要数据……简单地将其存储为变量也会引发错误。

一旦我执行了return $size,错误就消失了并返回了图像大小的字节值...当我将它作为 mySQL 值存储在列中时,问题不存在再次……

我希望这对某人有所帮助。哈哈。如果你遇到这个问题不明白,我很乐意解释。 :)

关于php - Laravel 6.0 上传文件时出现"SplFileInfo::getSize(): stat failed"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57860812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com