1.部分数据可以参考上传
- 代码:
@RequestMapping("/download")
public void downloadFile(HttpServletResponse response,@RequestParam("id") String id) {
com.ds.entity.File dsfile = fileService.getFileByid(id);
// 获取服务器本地的文件位置
File file = new File(FilePath.PATH+"\\"+dsfile.getPath()+"\\"+ dsfile.getRealname());
if (file.exists()) {
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
// 清除buffer缓存
response.reset();
// 指定下载的文件名
response.setHeader("Content-Disposition",
"attachment;filename="+dsfile.getRealname()+"");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
FileInputStream inputStream = new FileInputStream(file);
bufferedInputStream = new BufferedInputStream(inputStream); //缓冲流加速读
OutputStream outputStream = response.getOutputStream();
bufferedOutputStream = new BufferedOutputStream(outputStream); //缓冲流加速写
int n;
while ((n = bufferedInputStream.read()) != -1) {
bufferedOutputStream.write(n);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bufferedOutputStream.close();
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
throw new RuntimeException("文件在本地服务器不存在");
}
}