我正在开发一个电子商务网站,用于销售文件和所有下载文件或超过500Mb。所以为了获得更多保护,我将所有文件存储在存储文件夹中并像这样创建磁盘
Responce::download
因此我提到所有文件大小超过500Mb所以我不能简单地使用$fs = Storage::disk('academy')->getDriver();
$fileName = $file; //-> path to file
$metaData = $fs->getMetadata($fileName);
$stream = $fs->readStream($fileName);
if (ob_get_level()) ob_end_clean();
return response()->stream(
function () use ($stream) {
while(ob_end_flush());
fpassthru($stream);
},
200,
[
'Content-Type' => $metaData['type'],
'Content-disposition' => 'attachment; filename="' . $metaData['path'] . '"',
]);
(在两次下载之后===服务器关闭记忆填充)
所以我在StackOverflow中搜索并找到这个答案#1和#2所以我使用此代码下载文件:
public function assertPresent($path)
{
if ($this->config->get('disable_asserts', false) === false && ! $this->has($path)) {
throw new FileNotFoundException($path);
}
}
并在运行此错误后
"在路径找不到档案:D:/laragon/www/store/storage/app/academy/7FrggloHEjjc72rVJO1jPdF10nJL57MBMBvfwpYE.zip"
在这个档案上
D:\ laragon \ www \ store \ vendor \ league \ flysystem \ src \ Filesystem.php第388行
{{1}}
关于此错误的有趣之处在于,如果放入Windows资源管理器中它会打开zip文件返回的路径(路径正确)
已经使用过php artisan storage:link
答案 0 :(得分:0)
我不知道它在laravel框架中存储的知识的错误或湖泊:
当您通过存储保存文件时,将返回文件的路径,因此当我将此路径提供给上面的代码时,我将该路径保存在我的数据库中,返回该错误,因此我决定只发送文件名而没有路径并且只是代码工作。
我希望这个答案对某人有帮助!