使用IO流下載文件,瀏覽器不下載的問題。

使用io流實現下載文件,運行時打斷點發現產生了流,但是瀏覽器並沒有下載文件。
經查詢,發現若干原因。
1.設置response的頭文件
response.addHeader("Content-disposition", "attachment; filename=" +fileName);
其中Content-disposition設置表示瀏覽器自動下載。
但並未解決我的問題。
後來在網上查詢有說法是使用io流下載文件,不能通過ajax請求,要使用http請求
,我按照此思路修改代碼,最終功能實現。修改後的請求代碼如下:
function downloadFile(fileName) {
var fileName = encodeURI(encodeURI(fileName));
var url = "${ctx}/rpt-web/frame/topicShow/downloadFile?fileName="+fileName;
$('body').append($('<iframe id="download"/>'));
$("#download").attr('src',url);
}

其中紅色部分代碼是爲了防止js傳到後臺的參數出現亂碼,對應的在後臺代碼中要加上下面一行代碼:
fileName =URIDecoder.decode(fileName,"utf-8");
至於io流下載,到底能不能使用ajax請求,還有待驗證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章