public function down(Request $request)
{
$fileName = Redis::get(Lib_active_redis::ET_TASK_URL_CONFIG);//上传配置的名字
$savePath = $this->savePath() . $fileName;
$exists = Storage::disk('s3')->exists($savePath);
if (!$exists) {
$error = new MessageBag([
'title' => '文件不存在',
]);
return redirect('admin/task/create')->with(compact('error'));
}
$fileSize = Storage::disk('s3')->size($savePath);
$content = Storage::disk('s3')->get($savePath);
//告诉浏览器这是一个文件流格式的文件
Header("Content-type: application/octet-stream");
//请求范围的度量单位
Header("Accept-Ranges: bytes");
//Content-Length是指定包含于请求或响应中数据的字节长度
Header("Accept-Length: " . $fileSize);
//用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
Header("Content-Disposition: attachment; filename=task.csv");
echo $content;
exit();
}
Laravel:从亚马逊s3上下载文件
最新推荐文章于 2024-10-10 08:21:11 发布
本文介绍了一个使用S3存储服务进行文件下载的控制器实现细节。通过PHP代码展示了如何检查文件是否存在,获取文件大小,读取文件内容,并设置HTTP头以允许文件作为附件下载。

619

被折叠的 条评论
为什么被折叠?



