这里提供一些代码片段,具体的业务的代码被略去,
JavaScript片段
var request = new XMLHttpRequest();
request.open("POST", BASE_URL + "?method=exportAsTxt");
request.responseType = "blob"; // 返回类型blob
request.onload = function() {
if (this.status === 200) {
var name = request.getResponseHeader("Content-disposition");
var filename = name.substring(20, name.length);
var blob = this.response;
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function(e) {
var a = document.createElement('a');
a.download = filename;
a.href = e.target.result;
$("body").append(a);
a.click();
$(a).remove();
}
}
}
request.send();
Java端
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + METER_MONTHLY_READING_REPORT + month + ".txt");
exportAsTxt(response.getOutputStream(), datas);
|