php Laravel 5.5从本地磁盘读取文件

fhg3lkii  于 2023-04-10  发布在  PHP
关注(0)|答案(3)|浏览(242)

我试图用Laravel 5.5从本地文件位置导入一个csv文件。由于某种原因,它无法在我的计算机上找到该文件,但路径是正确的。

$fileLocation = $request->file('file')->store('csv');
$importFile = File::file(storage_path('app/' . $fileLocation));
9q78igpj

9q78igpj1#

您可以使用Storage facade来实现此操作。下面是一个示例:

if (Storage::disk($disk)->exists($filename)) {
    return Storage::disk($disk)->get($filename);
}

throw new FileNotFoundException(sprintf('File not found: %s', $filename), 404);
2izufjch

2izufjch2#

如果你不想使用Storage facade,你可以使用下面的代码来获取文件

$importFile = Illuminate\Support\Facades\File::get(storage_path('app/' . $fileLocation));

但是当你用csv作为store参数存储一个文件时,它会保存在storage/csv文件夹中,你只需要调用storage_path($fileLocation)
请确保您的存储路径正确,有关详细信息,请参阅此处

wgmfuz8q

wgmfuz8q3#

虽然晚了5年,我还是想回答这个问题。
我也遇到了同样的问题,我无法从我的存储中检索PDF文件。
在那之后,我意识到我给get函数的路径是错误的。
我给了错误的路径get()函数如下:

/app/public/book/example.pdf

正确的路径是:

/public/book/example.pdf

所以:

$filePath = '/public/book/example.pdf';
$file = Storage::get($filePath);

如果文件不存在,get()方法将返回null
if exist()方法将返回false,如果文件不存在。

相关问题