文件下载在项目中经常会使用。
最简单的文件下载,只要提供一个链接地址就能够进行下载,比如在eclipse官方网站下载eclipse时就是
通过这样的方式进行下载。
第二种方式可以通过HttpServletResponse进行下载,通过文件读写的方式把要下载的文件写到
HttpServletResponse的输出流中,完成文件下载。
servlet代码
package com.guchao.test.servlet; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet { /** * */ private static final long serialVersionUID = -135694745600205819L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { File f = new File("d:\\role.txt"); //注意设置的文件类型要与文件对应 resp.setContentType("text/plain,charset=UTF-8"); resp.setHeader("Content-Disposition", "attachment;filename="+f.getName()); FileInputStream fis = new FileInputStream(f); ServletOutputStream os = resp.getOutputStream(); byte[] buffer = new byte[1024]; int length = 0; while((length=fis.read(buffer)) != -1){ os.write(buffer, 0, length); os.flush(); } fis.close(); os.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
同样可以使用Struts2进行文件下载,本人没有看过Struts2关于文件下载的源码,但个人觉得可能会和第
二种方式类似。Struts2文件下载如下:
Action类
package com.guchao.struts2.action; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import com.opensymphony.xwork2.ActionSupport; public class FileDownloadAction extends ActionSupport { /** * */ private static final long serialVersionUID = 7728770879895650308L; private InputStream downloadInputStream; @Override public String execute() throws Exception { File f = new File("d:\\role.txt"); downloadInputStream = new FileInputStream(f); return "idownload"; } public InputStream getDownloadInputStream() { return downloadInputStream; } }
struts.xml
<action name="fileDownload" class="com.guchao.struts2.action.FileDownloadAction"> <result name="idownload" type="stream"> <param name="contentType">text/plain</param> <param name="bufferSize">1024</param> <param name="contentDisposition">attachment;filename=role.txt</param> <param name="inputName">downloadInputStream</param> </result> </action>
JSP页面
<a href="<%=basePath %>fileDownload">download file by Struts2</a><br/>
这样就完成了Struts2的文件下载
相关推荐
struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单
struts2官方文档
struts2文件下载,实现多文件上传下载,使用struts的file标签实现
使用struts2实现文件下载功能,可以直接运行!
在struts2基础上实现的包括单文件、多文件的上传及下载
struts2文件下载代码demo,一看就会。
http://blog.csdn.net/johnjobs/article/details/8076832博文中附件的下载链接
JavaEE Struts2文件下载
这是一个doc文档,文档中写明了在一个下载的action类中要执行的方法,struts.xml中的配置项,这个文档在于为大家了解下载的流程,建议多写几遍;多改改其中的参数,才能明白怎么用
参考博文:http://blog.csdn.net/u011638419/article/details/41719287
本程序是Struts2文件下载程序实现的文件下载。本程序总共有两种实现方式实现文件下载。动态下载和静态下载。
struts2文件下载(实例)解析
struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2
程序进过本人亲测,附件中含SQL,用的是MySQL数据库,实现了带进度条的多文件上传,并提供下载功能,解压后可直接导入Eclipse,希望对你有所帮助。
MVC Struts2框架搭建,Jquery Ajax异步数据交互,内涵需要的jar包及ppt讲解