文件下载后删除文件

前端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);
    }

当我点击下载按钮后,请求后台方法,如果文件太大的话,会有延迟,但是还没有等我下载完就删除文件了。。。

各位有此问题吗?求指点

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

$response = response()->download(storage_path('app/' . $zipperFilename));

register_shutdown_function('unlink', storage_path('app/' . $zipperFilename));

return $response;

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!