【问题标题】:How to store multiple pdf file into public folder using laravel 8 in controller?如何在控制器中使用 laravel 8 将多个 pdf 文件存储到公共文件夹中?
【发布时间】:2023-02-11 01:09:00
【问题描述】:

enter image description here

这是我想将我的 pdf 文件存储在我的公共文件夹中的数据。任何人都可以给我任何想法吗?

我试图通过 foreach 数据来获取该文件,但它似乎最终无法正常工作。任何人都可以帮助我吗?

【问题讨论】:

    标签: arrays laravel multiple-file-upload laravel-controller


    【解决方案1】:

    要将文件存储在公共文件夹中,您可以使用包含在应用程序文件系统配置文件中的公共磁盘,默认配置会将文件存储在storage/app/public 中。

    要使这些文件可从网络访问(我假设这就是您想要的),您需要创建一个从public/storagestorage/app/public 的符号链接。

    为此,只需运行:

    php artisan storage:link
    

    完成此操作后,您可以使用 Laravel 的 storage facade 与公共文件夹中的文件进行交互,以保存、检索和下载它们。

    店铺

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

    下载

    return Storage::download('file.jpg');
     
    return Storage::download('file.jpg', $name, $headers);
    

    取回

    $contents = Storage::get('file.jpg');
    

    如果您需要将用户上传的文件存储到您的公共存储,您可以这样做:

      $path = $request->file('yourUploadedPdf')->store('yourPdfsFolder');
    

    Laravel 的 store 方法将为文件名生成一个唯一的 ID,扩展名将由上传文件的 MIME 类型决定。 store 方法还返回路径,包括生成的文件名,因此您可以根据需要将其存储在数据库中。

    如果您需要指定文件名,那么您可以这样做:

    $path = $request->file('pdf')->storeAs(
        'yourPdfsFolder', 'yourPdfFileName'
    );
    

    请注意,我假设您将 public 作为您的默认磁盘,如果没有,那么您需要指定您在这些方法/存储外观调用中使用的磁盘。

    另外请注意,当使用公共磁盘时,默认情况下所有内容都存储在storage/app/public 下,因此无论何时您定义一个文件夹来存储上传的 PDF,它都将是storage/app/public/yourFolder

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 2015-01-03
      • 2019-10-13
      • 2021-09-08
      • 2020-01-21
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多