java中使用springmvc实现下载文件

时间:2024-08-04 08:05:49

下载文件具体实现代码:

public class TestDownload{
  public HttpServletRequest request;
  public HttpServletResponse response;   //下载文件
  public static void downLoadFile(){
    String downloadFileName = "下载后文件名_TEST.xlsx"; FileInputStream inputStream = null;
OutputStream outputStream = null;
File file = null;
try {
file = new File(getFilePath(request));
if (!file.exists()) {
log.info("日报文件不存在,请重新导出数据");
} else {
inputStream = new FileInputStream(file);
response.setContentType("application/txt;charset=utf-8");
response.setHeader("Content-Disposition",
"attachment;Filename=" + new String(downloadFileName.getBytes("GB2312"), "ISO8859-1"));// 设置下载后文件的名字、防止中文乱码 outputStream = response.getOutputStream();
byte[] bytes = new byte[1024];
int len = 0;
while ((len = inputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, len);
}
}
      } catch (IOException e) {
  log.error("文件下载异常:", e);
  } finally {
  try {
   if (inputStream != null) {
   inputStream.close();
  }
  if (outputStream != null) {
   outputStream.close();
  }
  } catch (IOException e) {
   log.error("下载日报中关闭流异常 :{} ", e);
   }
  }
  }
//获取服务器文件路径
  private String getFilePath(HttpServletRequest request) {
String fileName = "服务器文件.xlsx";
String projectPath = request.getSession().getServletContext().getRealPath("/downloadfile/tset");
return projectPath + "/" + fileName;
}
}