我想将文件存储在非公共存储文件夹中,并且我想在前面显示。这将是对未经授权的访问的安全性。我知道我可以使用readfile功能,但它不起作用,例如:readfile('/private/something.jpg')你能告诉我代码或其他方法来显示文件从非公共存储文件夹?
readfile
readfile('/private/something.jpg')
mrphzbgm1#
在Storage外观上使用disk方法指定要使用的磁盘。您可以使用以下代码:
Storage
disk
$fileContents = Storage::disk('local')->get('my_directory/file.txt');
注意需要指定要使用的磁盘,因为Laravel默认使用public磁盘,该磁盘允许访问公共文件。
public
fae0ux8s2#
在Laravel中,您可以将文件存储在非公共存储文件夹中,并使用存储外观在前端安全地显示它们。分步指南:第一步:我们创建了一个名为“private”的新磁盘,它将把文件存储在一个位于storage/app/private的非公共目录中。我们还将可见性设置为“private”,这样就不会直接从网络上访问这些文件。
'disks' => [ // ... 'private' => [ 'driver' => 'local', 'root' => storage_path('app/private'), 'url' => env('APP_URL').'/storage', 'visibility' => 'private', ], ],
第2步:使用putFileAs()方法存储文件:
$file = $request->file('file'); $path = $file->storeAs('private', $file->getClientOriginalName(), 'private');
步骤3:为文件生成临时URL:
$url = Storage::disk('private')->temporaryUrl($path, now()->addMinutes(10)); <a href="{{ $url }}">Download File</a>
2条答案
按热度按时间mrphzbgm1#
在
Storage
外观上使用disk
方法指定要使用的磁盘。您可以使用以下代码:
注意需要指定要使用的磁盘,因为Laravel默认使用
public
磁盘,该磁盘允许访问公共文件。fae0ux8s2#
在Laravel中,您可以将文件存储在非公共存储文件夹中,并使用存储外观在前端安全地显示它们。
分步指南:第一步:我们创建了一个名为“private”的新磁盘,它将把文件存储在一个位于storage/app/private的非公共目录中。我们还将可见性设置为“private”,这样就不会直接从网络上访问这些文件。
第2步:使用putFileAs()方法存储文件:
步骤3:为文件生成临时URL: