前端使用
<a href="后端的请求路径">下载</a>
后端使用
@getMapping()
public void down(HttpServletResponse response){
String path="D:\\aa\\aa.txt"
FIle file=new File(path);
FileInputStream InputStream=new FileInputStream(file);
response.setContentType("multipart/form-data");
//设置响应头,attachment表示以附件的形式下载,inline表示在线打开
response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("文件名", "UTF-8"));
response.setCharacterEncoding("utf-8")
BufferedInputStream bis = new BufferedInputStream(InputStream);
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
//第一种
int len=0
while((len=bis.read())!=-1){
bos.write(len);
bos.flush();
}
//第二种
//byte[] data = null;
//data = new byte[input.available()];
//bis.read(data);
//bos.write(data);
bos.close();
bis.colse();
}
//在线预览
@getMapping()
public void down(HttpServletResponse response){
String path="D:\\aa\\aa.txt"
FIle file=new File(path);
FileInputStream InputStream=new FileInputStream(file);
URL u = new URL("file:///" + path);
response.setContentType(u.openConnection().getContentType());
//设置响应头,attachment表示以附件的形式下载,inline表示在线打开
response.setHeader("content-disposition", "inline;fileName=" + URLEncoder.encode("文件名", "UTF-8"));
response.setCharacterEncoding("utf-8")
BufferedInputStream bis = new BufferedInputStream(InputStream);
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
//第一种
int len=0
while((len=bis.read())!=-1){
bos.write(len);
bos.flush();
}
//第二种
//byte[] data = null;
//data = new byte[input.available()];
//bis.read(data);
//bos.write(data);
bos.close();
bis.colse();
}