【问题标题】:I can't show a file from storage in Laravel 6我无法在 Laravel 6 中显示存储中的文件
【发布时间】:2020-01-24 12:15:49
【问题描述】:

我有一个 Laravel 6.0 应用程序,用户可以在其中将文件上传到服务器,并存储在 laravel 的存储文件系统中。我使用的系统一直在一个较旧的 Laravel 5.6 项目中工作。

控制器给我的链接:

domainame.com/public/file?folder=foldername&file=1569323440filename.png

控制器

public function getFile($foldername, $filename)
{
    $fullpath = "app/{$foldername}/{$filename}";

    return response()->download(storage_path($fullpath), null, [], null);
}

public function getFilesubfolder($foldername, $subfolder, $filename)
{
    $fullpath = "app/{$foldername}/{$subfolder}/{$filename}";

    return response()->download(storage_path($fullpath), null, [], null);
}

查看

{{ route('file.show' ,['folder' => 'empresas' , 'file' => $factura->archivo])}}

我得到的错误是 404 错误,因为尝试访问的链接不存在。在我之前的项目中,链接是这样的:

domainame.com/public/folder/file

我创建了一个指向存储系统的符号链接。我是否缺少其他类型的配置或其他什么?

【问题讨论】:

  • 您的 domainame.com 虚拟主机应该在您的 laravel 项目的 /public 中有根。项目网址不应以 /public 开头
  • @N69S 我知道,我编辑了整个 URL,因为上面有我的服务器 IP 地址 :)
  • 看看这个并正确设置一个虚拟主机stackoverflow.com/questions/22217386/…

标签: php laravel laravel-6 laravel-filesystem laravel-storage


【解决方案1】:

我已经解决了我的错误,如果人们来自谷歌搜索或其他东西,我想在这里发布解决方案:

我的错误是从 Laravel 6.0 开始,变量路由必须是文字。

就我而言,我改变了这个:

{{ route('file.show' ,['folder' => 'empresas' , 'file' => $factura->archivo])}}

到这里:

{{ route('file.show' ,['foldername' => 'empresas' , 'filename' => $factura->archivo])}}

因为我没有看到那个错误,所以我崩溃了,希望它对处于我这种情况的任何人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2021-05-04
    • 2020-12-19
    • 1970-01-01
    • 2020-08-07
    • 2017-09-03
    • 2021-08-25
    相关资源
    最近更新 更多