如何在控制器中使用laravel 8将多个pdf文件存储到公共文件夹?

tzdcorbm  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(135)

这是我的数据,我想存储我的pdf文件在我的公用文件夹。任何人都可以给予我任何想法?
我试图foreach的数据,以获得该文件,但它似乎不工作,在我的结束。任何人可以帮助我吗?

dojqjjoe

dojqjjoe1#

要在公共文件夹中存储文件,可以使用应用程序的文件系统配置文件中包含的公共磁盘,默认配置将文件存储在storage/app/public中。
为了使这些文件可以从Web访问(我假设这是您想要的),您需要创建一个从public/storagestorage/app/public的符号链接。
为此,只需运行:

php artisan storage:link

一旦你完成了这一步,你就可以使用Laravel的storage facade来与你的公共文件夹中的文件交互,以保存、检索和下载它们。
商店

use Illuminate\Support\Facades\Storage;
 
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方法也会返回路径,包括生成的文件名,因此如果需要,您可以将其存储在DB中。
如果您需要指定文件名,则可以执行以下操作:

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

请注意,我假设您将使用public作为默认磁盘,如果没有,则需要指定在这些方法/存储外观调用中使用的磁盘。
进一步注意,当使用公共磁盘时,默认情况下,所有内容都存储在storage/app/public下,因此无论何时您定义一个文件夹来存储上传的PDF,它都将是storage/app/public/yourFolder

相关问题