<a href="down.jsp?fileName=另存为的文件名称.jpg&filePath=图片路径(相对路径)">下载图片</a>
<a href="down.jsp?fileName=haha.jpg&filePath=/test/haha.jpg"><img src="/test/haha.jpg"/></a>
这样点击图片就可以下载了.注意一定要是相对路径,不能是绝对路径。就这个问题害我找了好长时间。
绝对路径:是从盘符开始的路径,形如 C:\windows\system32\cmd.exe
相对路径:是从当前路径开始的路径
down.jsp代码
<%@ page contentType="text/html;charset=GBK"%>
<%
String filePath =request.getParameter("filePath");
String fileName = request.getParameter("fileName");
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
if(fileName!=null&&filePath!=null){
response.setContentType("application/x-download");
response.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));
try{
out.clear();
out=pageContext.pushBody();
}catch(Throwable e){
e.printStackTrace();
}
try{
System.out.println(filePath);
RequestDispatcher dis = application.getRequestDispatcher(basePath+filePath);
dis.forward(request,response);
}catch(Throwable e){
e.printStackTrace();
}finally{
response.flushBuffer();
}
}
%>