求助一个 sendfile() 下载文件的问题 [ 2.0 版本 ]
当我使用 sendfile()
发送文件时发现,如果我后面跟的有:
return $this->render('...');
之类的语句,类似下面情形:
yii::$app->response->sendfile($filepath);
$this->render('index');
执行的时候是不会报错的,但是不等文件发送完成就直接跳到 index 页面了,想问下有什么办法能够等到文件下载完成之后再跳转,或者跳转的同时不影响文件的下载?
谢谢!
最佳答案
-
1、下载完成后跳转
可以使用 ajax 接收下载文件(这时候你需要自己处理文件的保存),这时候你是可以获得 下载完成 这个事件的,在这个事件的处理函数中 location.href 就可以了。2、跳转的同时不影响文件的下载
因为下载文件并不会使浏览器跳转,所以 下载文件的同时 是可以执行 js 的,示例代码如下:html:
<a href="xxx.exe" data-delayed-href="xxx.html">
js:
$('a[data-delayed-href]').click(function() { window.open($(this).data('delayed-href'), '_blank'); });
总之,这是个 客户端的问题,与服务端的关系 并不大。
共 1 条回复
sk811229
注册时间:2018-05-23
最后登录:2022-10-06
在线时长:16小时47分
最后登录:2022-10-06
在线时长:16小时47分
- 粉丝0
- 金钱770
- 威望10
- 积分1030