版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PerfectUrl/article/details/84302470
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(); }