Laravel:从亚马逊s3上下载文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();

}

猜你喜欢

转载自blog.csdn.net/PerfectUrl/article/details/84302470