spring mvc 文件下载使用方法:
public String fileDownload(HttpServletRequest arg0, HttpServletResponse response) {
String filename = "";
String fileurl = "";
String id = arg0.getParameter("db_id");
DBBackup bdbackupinf = dbbackupService.loadById(id);
if (bdbackupinf != null) {
filename = bdbackupinf.getDb_bskcupName();
fileurl = bdbackupinf.getDb_bskcpuUrl();
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + filename);
try {
// String path = Thread.currentThread().getContextClassLoader()
// .getResource("").getPath()
// + "download";//这个download目录为啥建立在classes下的
InputStream inputStream = new FileInputStream(new File(fileurl));
OutputStream os = response.getOutputStream();
byte[] b = new byte[2048];
int length;
while ((length = inputStream.read(b)) > 0) {
os.write(b, 0, length);
}
// 这里主要关闭。
os.close();
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 返回值要注意,要不然就出现下面这句错误!
// java+getOutputStream() has already been called for this response
return null;
}