前端JS
function download()
{
if(downloadObj.hasClass('disabled')) {
return false;
}
var filename = localStorage.getItem('filename');
var url = '{{ url('admin/export/download') }}?filename=' + filename;
location.href = url;
localStorage.clear();
// 禁用下载按钮
downloadObj.addClass('disabled');
}
后台方法
public function download(Request $request)
{
if ($request->filled('filename')) {
$filename = $request->input('filename');
} else {
$this->ajaxError(1, '文件不存在');
}
$header = [
"Cache-Control" => "max-age=0",
"Content-Description" => "File Transfer",
'Content-disposition' => 'attachment; filename=' . $filename,
"Content-Type" => "application/zip",
"Content-Transfer-Encoding" => "binary",
// 'Content-Length' => filesize($filename)
];
return response()->download(public_path('/storage/'. $filename), $filename, $header)->deleteFileAfterSend(true);
}
当我点击下载按钮后,请求后台方法,如果文件太大的话,会有延迟,但是还没有等我下载完就删除文件了。。。
各位有此问题吗?求指点