ajax+php提示下载,通过Ajax和PHP强制下载

您无法使用ajax下载文件.所以,如果你有一些应该在ajax上发生的事情,你应该返回url作为响应并应用它像document.location =“url”来开始下载过程.

这里有一点说明.我记得,如果不是通过用户点击启动浏览器,它将阻止文件下载.所以,这将工作正常:

.click(function(){

document.location = "download url"

})

但如果它不是由用户点击启动,它将被阻止.所以,这样的代码:

.click(function(){

$.ajax({...,success:function(download_url_from_server){

document.location = download_url_from_server;

}});

})

将被浏览器阻止.因此,如果您想通过帖子传递一些数据,您可以使用< form target =“...”将表单提交到隐藏的iframe或空白页面:

function checkToken(token){

var $form = $("#downloadForm");

if ($form.length == 0) {

$form = $("

").attr({ "target": "_blank","id": "downloadForm","method": "POST","action": "script.PHP" }).hide();

$("body").append($form);

}

$form.find("input").remove();

var args = { a: "checkToken",b: token }

for (var field in args) {

$form.append($("").attr({"value":args[field],"name":field}));

}

$form.submit();

}

在script.PHP中,如果令牌为Ok,则需要立即执行download.PHP中的代码,或者重定向下载脚本:

header("Location: download.PHP?a=" . $filename)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值