Laravel-文件上传不';由于某些原因,似乎不允许所有类型的文件

Laravel-文件上传不';由于某些原因,似乎不允许所有类型的文件,laravel,file-upload,controller,Laravel,File Upload,Controller,由于某种原因,我的应用程序拒绝上传具有特定扩展名的文件。 它会打印出错误: fopen(C:\wamp64\www\storage\app\public/wrdjxF3EMbtGCUyXjSEWH5zeAu822ACeKikLPaCT.): failed to open stream: Permission denied 到目前为止,发出此错误的文件类型为:.msg和.txt。 我不知道是什么导致了这个问题,其他文件类型似乎工作正常 处理文件上载的控制器函数: if($request->

由于某种原因,我的应用程序拒绝上传具有特定扩展名的文件。 它会打印出错误:

fopen(C:\wamp64\www\storage\app\public/wrdjxF3EMbtGCUyXjSEWH5zeAu822ACeKikLPaCT.): failed to open stream: Permission denied
到目前为止,发出此错误的文件类型为:.msg.txt。 我不知道是什么导致了这个问题,其他文件类型似乎工作正常

处理文件上载的控制器函数:

if($request->hasFile('document'))
{
    $files = $request->file('document');
    foreach($files as $file){
        if($file){
            $name = $file->getClientOriginalName();
            $size = $file->getClientSize();
            $size = number_format($size / 1048576,2);
            $path = $file->store('public');
            Document::create([
                'report_id' => $id,
                'report_type' => "App\VisitingReport",
                'file_path' => $path,
                'file_name' => $name,
                'file_size' => $size.' MB'
            ]);  
        }
    }
}
任何帮助都将不胜感激,谢谢

我正在使用WAMP在Windows计算机上运行此程序


我确信这确实与许可有关。我已经更进一步了,文件被上传了,但是这次没有扩展名。

你能在这里粘贴你在上传后看到的其他文件类型和
.txt
的权限吗。在存储这些文件的地方运行
ls-la
,权限应该在最左边。类似于
rwxr-wr-w
。粘贴在这里,这样至少可以提供一个关于问题的线索

否则,一旦上传了
.txt
文件,您就可以运行
chmod 777 some.txt
并查看是否仍然存在权限问题。如果您不再遇到权限问题,它就会以某种方式创建具有不同权限的
.txt
文件。但是做任何事情都不是一个好主意:D。但至少现在你知道问题出在哪里了

如果权限是个问题,那么这里有一个关于这个主题的极好的答案

祝你好运:)
我不是一个专家,只是想帮助你。我遇到过这个错误,但我不知道它对你是否有效。 把这个放在你的.env文件中

FILESYSTEM_DRIVER = public
并使用以下命令将公用文件夹与存储文件夹链接:

php artisan storage:link

我希望它能起作用。

我应该补充一点,我正在使用Windows和WAMP:p。