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
總結
以上是生活随笔為你收集整理的php ajax download,通过Ajax和PHP强制下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python算法题排序_python-数
- 下一篇: 去除面部黑色素小妙招_面部黑色素沉着怎么