文件下载的功能,在此是点击了下载的链接以后,前台把资源的ID返回到后台请求下载。后台先把该资源的URL获取出来,若资源不存在,则返回“-1”。
/*
* 下载文件
*/
@RequestMapping("/download")
@ResponseBody
public String downloadFile(HttpServletRequest request, @RequestParam("id")String id,
HttpServletResponse response) {
/*
* Userinfo userinfo = (Userinfo) request.getSession().getAttribute("userinfo");
* if(userinfo.getMark()<5) { return "您的积分不足!"; }
* userinfo.setMark(userinfo.getMark()-5);
* userInfoService.updateUserInfo(userinfo);
*///扣除积分
System.out.println(id+"_______________");
String url = null;
if(id!=null) {
url = service.selectSourceBySourceID(Integer.parseInt(id)).getSourcepath();
}else {
return "error";
}
if(url==null)
return "-1";
File file = new File(url);
if (!file.exists()) {
return "-1";
}
response.reset();
response.setHeader("Content-Disposition", "attachment;fileName=" + url);
response.setContentType("application/force-download");
response.setContentType("multipart/form-data");
// url = URLEncoder.encode(url,"UTF-8");
try {
InputStream inStream = new FileInputStream(url);
OutputStream os = response.getOutputStream();
byte[] buff = new byte[1024];
int len = -1;
while ((len = inStream.read(buff)) > 0) {
os.write(buff, 0, len);
}
os.flush();
os.close();
inStream.close();
} catch (Exception e) {
e.printStackTrace();
return "-2";
}
return "0";
}