在Laravel 5.4中,即使使用Store函数为路径授予了所有文件权限,仍无法打开流:权限被拒绝。

14 浏览
0 Comments

在Laravel 5.4中,即使使用Store函数为路径授予了所有文件权限,仍无法打开流:权限被拒绝。

我正在尝试将文件上传到laravel 5.4的C:\\Users\\sandeep\\maxo\\storage\\app\\public文件夹中。我正在使用以下代码:\n

    
    
        
            
        
        
            
{{ csrf_field() }}

\n$path = $request->file(\'import_file\')->store(\'public\');\n是laravel代码。\n但是我收到了这样的错误:\n

\nfopen(C:\\Users\\sandeep\\maxo\\storage\\app\\public/K4oIHMXveyx2VChmAXAcNkTmoIXKACvqoIbbHCeB.): failed to open stream: Permission denied\n

\n这是我的错误截图\n点击这里\n但当我上传图片时,一切正常。

0
0 Comments

尝试在终端上运行sudo chmod -R 777 public,它会更改目录权限。永远不要在任何文件夹上设置777权限,以避免被黑客攻击。这个问题在这里已经讨论了100500次。

出现原因:权限被拒绝,无法打开流。

解决方法:运行终端命令sudo chmod -R 777 public,更改目录权限。

注意:为了避免被黑客攻击,永远不要在任何文件夹上设置777权限。

0
0 Comments

在Laravel 5.4中,即使给予了存储路径的文件权限,仍然可能出现"Failed to open stream: Permission denied"的错误。下面将介绍导致这个问题出现的原因以及解决方法。

问题的原因是文件权限设置不正确。在Laravel中,存储路径通常是`storage`目录。当使用Laravel的`Store`函数保存文件时,可能会出现无法打开文件流的错误,即使给予了存储路径的所有文件权限。

解决方法如下:

1. 首先,我们不建议给予存储路径的所有文件权限为`777`,因为这会造成安全风险。

2. 相反,我们可以使用以下命令来设置正确的文件权限:

sudo chown -R www-data:www-data storage

如果你使用的是Apache服务器,这个命令将给予Apache用户权限。

通过执行以上命令,我们将存储路径的所有文件和目录的所有权和组都设置为Apache用户。这样,Apache用户将具有对存储路径的访问权限,从而解决了"Failed to open stream: Permission denied"的错误。

在Laravel 5.4中,当使用`Store`函数保存文件时,可能会出现"Failed to open stream: Permission denied"的错误。这是由于文件权限设置不正确导致的。通过使用`sudo chown -R www-data:www-data storage`命令,将存储路径的所有文件和目录的所有权和组都设置为Apache用户,可以解决这个问题。这样,Apache用户将具有对存储路径的访问权限。不过,我们不建议给予存储路径的所有文件权限为`777`,因为这会造成安全风险。

0