我们通过iframe到后台请求一个下载,后台通过流返回到浏览器,弹出保存窗口。
js代码:
function (){
var voiceUrl =baseURL+ "download";
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.src = voiceUrl;
iframe.style.display = "none";
}
java代码:
@RequestMapping("download")
public void download(HttpServletRequest request , HttpServletResponse response) {
String fileName = "E:\\wew.wav";
String headStr = "attachment; filename=\"" + fileName + "\"";
response.setContentType("audio/x-wav|wav");
response.setHeader("Content-Disposition", headStr);
File file = new File(fileName);
FileInputStream fis;
ServletOutputStream fos;
try {
fis = new FileInputStream(file);
fos = response.getOutputStream();
byte[] buf = new byte[1024 * 4];
int size = 0;
while ( (size = fis.read(buf)) != -1) {
fos.write(buf, 0, size);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
我们可以添加一个按钮,单击调用上面的方法就能弹出下载框下载了,这里演示了下载语音文件,同理excel,txt等也可以通过上述方式进行下载,只需要设置response返回到浏览器的数据类型即可。