php ajax download,通过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;

}});

})

将被浏览器阻止。因此,如果您想在发布时传递一些数据,可以使用以下方法将表单提交到隐藏的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中,如果令牌正常,您需要立即从download.php执行代码,或者重定向到下载脚本:

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

2020-07-26

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值