/**
* 不兼容ie浏览器
*
* @param name 文件名
* @param request
* @return
* @throws IOException
*/
@RequestMapping("/download")
public ResponseEntity<byte[]> download(@RequestParam String name, HttpServletRequest request) throws IOException {
String path = request.getServletContext().getRealPath("/upload");
String filePath = path + "/" + name;
File file = new File(filePath);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setContentDispositionFormData("attachment", name);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
/**
* 兼容ie
* 中文下载存在错误
*
* @param name 文件名
* @param request
* @param response
* @throws IOException
*/
@RequestMapping("/download2")
public void download2(@RequestParam String name, HttpServletRequest request, HttpServletResponse response) throws IOException {
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
String path = request.getServletContext().getRealPath("/upload");
File file = new File(path + "/" + name);
//浏览器不解析而下载 兼容IE
response.setContentType("application/x-msdownload;");
//设置下载的文件名
response.setHeader("Content-disposition", "attachment;filename=" + new String(name.getBytes("UTF-8"), "ISO8859-1"));
bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
byte[] bytes = new byte[1024];
int len;
while (-1 != (len = bufferedInputStream.read(bytes, 0, bytes.length))) {
bufferedOutputStream.write(bytes, 0, bytes.length);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedInputStream != null) {
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bufferedOutputStream != null) {
bufferedOutputStream.close();
}
}
}
ssm文件下载
猜你喜欢
转载自blog.csdn.net/white_xiaosheng/article/details/89331539
今日推荐
周排行