0
我在JSP內發送來自script
的AJAX POST請求。大文件不能用jsp下載
內部控制器我正在從位置讀取文件並返回字節數組。
fileInputStreamReader = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
fileInputStreamReader.read(bytes);
filedata = Base64.getEncoder().encode(bytes);
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentLength((int) file.length());
fileInputStreamReader.close();
然後在前端我創造一個不可見的鏈接並下載文件。
$.ajax({
url : url,
type : 'POST',
data : nodedata,
beforeSend : function(jqXHR, settings) {
setCsrfHeader(jqXHR);
},
success : function(data) {
hideLoader();
/* window.open("data:"+contentType+";base64, " + data); */
var uri = 'data:'+contentType+';base64,' + data;
var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download =atcName ;
document.body.appendChild(downloadLink);
downloadLink.click();
$("#Success").html("File download successful");
$("#error").hide();
$("#Success").show();
document.body.removeChild(downloadLink);
},
error : function(e) {
hideLoader();
$("#error").html(ERROR_SERVER_RESPONSE);
$("#Success").hide();
$("#error").show();
alert(ERROR_SERVER_RESPONSE);
}
});
問題是隻有大文件大小大於50mb。我該怎麼辦?
「我該怎麼辦?」:發佈確切的錯誤消息。 – Henry
@亨利:正如我所說,當我檢查元素時,大文件也被轉移。但不作爲附件下載。任何地方都沒有錯誤消息。響應也是空的,但響應狀態爲200 OK – Shadab
您使用的是什麼服務器?如果上傳時間過長,則可能會有文件大小限制或超時。 – StephaneM