使用laravel创建目录时授予文件夹读取权限

问题描述 投票:0回答:1

我有一个案例,假设我将产品的图像上传到名为“uploads”的临时目录,然后将其移动到另一个名为“products”的目录,并且该图像将位于像这样动态创建的子目录中

products/1/variants/1/image.jpeg
  1. “products”为主目录,权限为0755,可访问
  2. “/1/variants/1/”动态创建的目录权限为0700,无法访问且无法读取图像

我的搬家密码

$sourcePath = 'public/'.$image['path'];
$destinationPath = "products/".$product>id."/variants/".$variantImages['variantId']."/".pathinfo($sourcePath, PATHINFO_BASENAME);


Storage::makeDirectory("public/images/products/".$product->id."/variants/".$variantImages['variantId']);

Storage::move($sourcePath, "public/images/".$destinationPath);

注意:我使用 Hostinger 托管

图像已移至正确的目录,但由于权限原因我无法读取

我希望阅读图片

  1. 存储:链接(符号链接)正确
  2. 存储磁盘的文件系统配置正确并设置为0755
  3. 我还尝试使用存储可见性
    Storage::setVisibility()
  4. 使用 Storage::makeDirectory($dir, 0755, true) 时
laravel storage
1个回答
0
投票

我认为您想要做的是将图像从存储路径移动到公共文件夹。

Storage::put('file.jpg', $contents, 'public');

我认为这更应该是你应该采取的方法。或者,如果您希望它持续存在,也可以更改可见性。

$visibility = Storage::getVisibility('file.jpg');
 
Storage::setVisibility('file.jpg', 'public');

公用文件夹可访问,然后您可以添加您希望在其中找到它的路径。放置也是如此。

如果没有,并且您确实想做上面正在做的事情并修复它。您有一个错误,您有“$product>id”,它应该是“$product->id”

© www.soinside.com 2019 - 2024. All rights reserved.