1
skybr 2014-09-19 12:08:11 +08:00
别想复杂了, 用隐藏的iframe不好么?
权限通过动态页用x-sendfile传递文件让浏览器直接下载, 权限不通过子框架调用parent的javascript报警告. |
2
qiayue 2014-09-19 12:10:03 +08:00
你用新打开页面去做,判断完成之后下载,然后自动关闭新页面
|
4
l1905 OP @jsonline http://jsbin.com/cuyojojasoju/4/edit 简单的把代码摘出来了
|
6
jsonline 2014-09-19 13:01:24 +08:00
$('.downAttach').click(function(e) {
$.get("http://run.jsbin.com/runner?m=activity&c=index&a=add_apply_attach&id=<?php echo $adata['id'];?>" ) .always(function(msg) { location.href = 'http://baidu.com'; alert('done!') }); }); |
7
jsonline 2014-09-19 13:02:16 +08:00
|
8
vincenting 2014-09-19 22:33:56 +08:00 1
1. ajax 下载文件?不太懂,为何不判断权限,如果没有权限就不给出下载链接,如果有权限才给出下载链接
2. 点击下载链接后再次验证权限,想到有如下做法[根据规模选择]: a. 生成一个一段时间(例如 10s)的 token 放在 redis 里面,然后跳转至下载链接;然后使用 nodejs 代理或者 lua 脚本结合 Nginx 的方式,查看token 是否有效,有效才开始下载。 b. 静态云服务器应该都有类似的功能,生成一个一次性/临时有实效的下载地址,避免暴露真实地址。 |
9
ryd994 2014-09-19 23:45:32 +08:00 1
再再简单,也就是ajax生成链接然后隐藏iframe下载。
如果你想ajax直接返回内容,那服务端就会很麻烦,而且效率也低。 先生成链接,下载交给静态服处理,动态这边效率要高得多。 |