/**
* 描述:下载图片
* 时间[2019/12/11 17:56]
* 作者:李清伟
* params: return:
*/
@RequestMapping("downLoadImg")
@ResponseBody
public void downLoadImg(HttpServletRequest request, HttpServletResponse response){
/*获取文件存贮的路径*/
String filePath = uploadPath;
/*获取需要下载的文件名*/
String fileName = request.getParameter("imgNewName");
// String fileName = "101b0699-3b32-4ca8-9f96-f7efc5a22e49.jpg";
/*若文件名不为空*/
if (fileName!=null){
File file1 = new File(filePath,fileName);
/*若文件路径存在*/
if (file1.exists()){
/*设置强制不打开*/
response.setContentType("application/force-download");
/*设置文件的编码*/
response.setCharacterEncoding(request.getCharacterEncoding());
/*设置文件请求头*/
response.setHeader("Content-Disposition","attachment; filename="+fileName);
/*将文件放入输出流*/
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(new FileInputStream(file1));
IOUtils.copy(bis,response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bis!= null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
文件名在页面上点击下载时在前台传过来
**注意:**如果是上传下载一起的话,在页面上传完毕需要下载下来,此时需要些下载的方法:下载的方法不能使用ajax请求(自己因为使用了ajax请求,致使图片一致下不下来),应该使用window.open()方法,这样下载就没问题了
function downLoad(imgNewName) {debugger
var url = '${ctx}/upload/downLoadImg?imgNewName='+imgNewName;
window.open(encodeURI(url),"_blank");
}