自从我升级到Laravel 9后,我就遇到了一个问题。当我将图像上传到存储时,访问文件的权限不再正确。
示例:用户上传新图像:将图像保存到以下路径:storage/app/public/folder/{user_id}/{project_name}/photos/my_photo.jpg
my_photo.jpg具有正确的权限(644)
但是public/和my_photo. jpg之间的所有文件夹都是使用权限700而不是755创建的。因此,图像出现403错误。
我联系了我的主人,但似乎不是他们打来的。
有人能解决我的问题吗?
非常感谢!
创建权限的解决方案
2条答案
按热度按时间4ktjp1zp1#
我们将给予755存储权限和引导文件夹权限
之后,运行“Storage Link”命令
另外,更改config文件夹中的Laravel filesystems.php
有关详细信息,请访问https://laravel.com/docs/9.x/filesystem#local-files-and-visibility
ahy6op9u2#
我认为这是因为Laravel 9对新创建的文件使用了不同的默认权限。默认情况下,Laravel对文件使用“0644”权限模式,对目录使用“0755”权限模式。但是,可以通过更改服务器配置中的“umask”值来修改这些权限模式。
要解决此问题,可以在上载文件保存到存储区后显式设置其权限模式。可以使用“chmod”函数设置文件的权限模式。例如,如果要将权限模式设置为“0644”,可以使用以下代码:
将“public”替换为您正在使用的磁盘名称,将“path/to/file”替换为上载文件的路径。
或者,您也可以修改服务器配置中的“umask”值,以确保新创建文件的默认权限模式设置为“0644”。这将确保Laravel创建的所有新文件都具有正确的权限模式。