Laravel下载大文件最终找不到

时间:2018-05-17 12:43:13

标签: php laravel laravel-5 filesystems storage

我正在开发一个电子商务网站,用于销售文件和所有下载文件或超过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

1 个答案:

答案 0 :(得分:0)

我不知道它在laravel框架中存储的知识的错误或湖泊:

当您通过存储保存文件时,将返回文件的路径,因此当我将此路径提供给上面的代码时,我将该路径保存在我的数据库中,返回该错误,因此我决定只发送文件名而没有路径并且只是代码工作。

我希望这个答案对某人有帮助!