亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教通過ajax調用php下載文件

請教通過ajax調用php下載文件

PHP
LEATH 2019-08-01 02:01:58
通過ajax調用php下載文件我有個按鈕onclick它將調用一個Ajax函數。這是我的Ajax函數function csv(){     ajaxRequest = ajax();//ajax() is function that has all the XML HTTP Requests     postdata = "data=" + document.getElementById("id").value;     ajaxRequest.onreadystatechange = function(){         var ajaxDisplay = document.getElementById('ajaxDiv');         if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){             ajaxDisplay.innerHTML = ajaxRequest.responseText;                    }     }     ajaxRequest.open("POST","csv.php",false);     ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');     ajaxRequest.send(postdata);}我根據用戶輸入創建CSV文件。創建之后,我希望它能夠迅速下載或強制下載(最好是強制下載)。我在php文件末尾使用下面的腳本下載該文件。如果我在一個單獨的文件中運行這個腳本,它可以正常工作。$fileName = 'file.csv';$downloadFileName = 'newfile.csv';if (file_exists($fileName)) {     header('Content-Description: File Transfer');     header('Content-Type: text/csv');     header('Content-Disposition: attachment; filename='.$downloadFileName);     ob_clean();     flush();     readfile($fileName);     exit;}echo "done";但是,如果我在csv.php末尾運行它,它就會將file.csv的內容輸出到頁面(到ajaxDiv中),而不是下載。有沒有辦法強制下載csv.php末尾的文件?
查看完整描述

3 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

Ajax不適合下載文件。彈出一個以下載鏈接作為其地址的新窗口,或者執行以下操作document.location = ....

查看完整回答
反對 回復 2019-08-02
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

使用jQuery的一個非常簡單的解決方案:

在客戶端:

$('.act_download_statement').click(function(e){
    e.preventDefault();
    form = $('#my_form');
    form.submit();});

在服務器端,確保發送正確的Content-Type標題,因此瀏覽器將知道它的附件和下載將開始。




查看完整回答
反對 回復 2019-08-02
  • 3 回答
  • 0 關注
  • 584 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號