生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourcename)%>" id="imgscanhref_file234" target="_blank"><%=messages.getMessage("fileUploadCanDownload")%></a>,即将下载image.jsp页面。
所以我们可以在写规则时,定义变量filesource为文件地址,在自动生成JSP页面,将超链接改为:<a href="<%=filesource%>" id="imgscanhref_file234" target="_blank"><%=messages.getMessage("fileUploadCanDownload")%></a>,那么这个超链接就可以进行下载文件了。
当然,为了防止资源直接暴露给客户,我们可以采用RequestDispatcher的方式进行,流程如下:
<%
response.setContentType("application/x-download");//设置为下载application/x-download
String filedownload = "/要下载的文件名";//即将下载的文件的相对路径
String filedisplay = "最终要显示给用户的保存文件名";//下载文件时显示的文件保存名称
String filenamedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
try
{
RequestDispatcher dis = application.getRequestDispatcher(filedownload);
if(dis!= null)
{
dis.forward(request,response);
}
response.flushBuffer();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
}
%>
具体的操作都是类似的。