Java下载服务器⽂件到前端
直奔主题!
为什么jdk安装失败Java代码
/**
* 下载⽂件
* @param path
* @param fileName
* @param response
android 入门教程*/
public static void downLoad(String path, String fileName,HttpServletResponse response) {云服务器搭建网站
// 服务器保存的⽂件地址,即你要下载的⽂件地址(全路径)
File file = new File(path);
InputStream inputStream = null;
OutputStream outputStream = null;
try {
inputStream = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[inputStream.available()];
response.addHeader("Content-Disposition", "attachment;filename=" + de(fileName, "UTF-8"));jquery下载文件请求
response.addHeader("Content-Length", "" + file.length());
response.setContentType("application/octet-stream");
outputStream = new OutputStream());
outputStream.write(buffer);
outputStream.flush();
}
catch (IOException e) {
e.printStackTrace();
throw new Message());
}
finally {
try {
if (outputStream != null) {
outputStream.close();
}
if (inputStream != null) {
inputStream.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
前端代码
// 下载⽂件
c write函数function downLoad(sid, fileName) {
var url = "/file/downFileBySid?sid=" + sid;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
if (this.status === 200) {
debugger
var blob = sponse;
var reader = new FileReader();
var a = ateElement('a');
isotopes tablea.download = fileName;
a.href = sult;
$('body').append(a);
a.click();
}
} else {
alert("下载失败");
}
};
xhr.send();
}
最开始⽤jquery的ajax发起请求,直接在response中返回的是⽂件流,没有blob类型返回格式。
苦恼了好半天,希望⼤家别⾛弯路。
如果你⽤swagger测试请求会直接给你⽣成⼀个下载连接,它⾃⼰内部处理了,但我们只能依赖a链接形式。
附⼀个⽐较好的类似⽂章,供⼤家参考。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论