我正在使用 Flysystem 在 Rackspace 上存储站点的文件。上传没问题,但无法弄清楚如何开始下载文件 - 这是我尝试过的
Storage::disk('rackspace');
return response()->download('file-library/' . $file->filename);
结果是找不到该文件。正在添加Storage::disk()
足以让 Laravel 在这个位置而不是本地查找?实现这一目标的最佳方法是什么?
来自 Flysystem 的弗兰克。
执行此操作的首选方法是将 readStream 输出与 Response::stream 结合使用。
<?php
$fs = Storage::disk('diskname')->getDriver();
$stream = $fs->readStream($file);
return Response::stream(function() use($stream) {
fpassthru($stream);
}, 200, [
"Content-Type" => $fs->getMimetype($file),
"Content-Length" => $fs->getSize($file),
"Content-disposition" => "attachment; filename=\"" . basename($file) . "\"",
]);
The $fs
is the League\Flysystem\Filesystem
实例。我相信 Laravel 提供的文件系统类中有一种方法可以检索此实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)