struts2文件上传下载
2015-11-04 21:47
369 查看
一、文件上传
1、编写上传页面
<%@ taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title></title> </head> <body> <s:form action="/upload/upload.action" enctype="multipart/form-data"> <s:file name="file" label="文件"></s:file> <s:submit value="保存"></s:submit> </s:form> </body> </html>
2、配置struts配置文件
<package name="upload" namespace="/upload" extends="struts-default"> <action name="upload" method="upload" class="upload.Upload"> <interceptor-ref name="defaultStack"> <!--最大字节数--> <param name="fileUpload.maximumSize">5242880</param> <!--允许的后缀类型--> <param name="fileUpload.allowedExtensions">.bmp,.jpg,.png</param> </interceptor-ref> <result>/index.jsp</result> </action> </package>
3、编写action
public class Upload extends ActionSupport { private File file;//和文件域的名字一样 private String fileFileName;//文件名 private String fileContentType;//文件类型 public String upload(){ System.out.println(file.length()); System.out.println(fileFileName); System.out.println(fileContentType); return SUCCESS; } public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } }
二、文件下载
1、编写Action
public class Download extends ActionSupport { private InputStream fileIn;//要下载的资源的输入流 private String filename;//下载的文件名 public String download() throws UnsupportedEncodingException, FileNotFoundException { //得到文件路径 String realPath = ServletActionContext.getServletContext().getRealPath("/111.jpg"); filename = FilenameUtils.getName(realPath); filename = URLEncoder.encode(filename, "UTF-8");//中文文件名下载乱码 fileIn = new FileInputStream(realPath); return SUCCESS; } public InputStream getFileIn() { return fileIn; } public void setFileIn(InputStream fileIn) { this.fileIn = fileIn; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } }
2、配置struts配置文件
<package name="download" namespace="/download" extends="struts-default"> <action name="download" class="upload.Download" method="download"> <!--下载的结果需要配置为stream--> <result type="stream"> <param name="inputName">fileIn</param> <!-- 动态获取下载的文件名:在该配置文件中使用OGNL表达式 。就相当于调用当前动作的getFilename方法--> <param name="contentDisposition">attachment;filename=${filename}</param> <!--告诉客户端文件的MIME类型--> <param name="container">application/octet-stream</param> </result> </action> </package>
相关文章推荐
- JQuery+Strusts1.x无刷新登录
- java struts常见错误以及原因分析
- Struts之logic标签库详解
- struts2的select标签用法实例分析
- SSH框架网上商城项目第20战之在线支付平台
- java中struts 框架的实现
- sprng和struts有什么区别?
- SpringMVC+MyBatis项目总结(三)
- MyEclipse7.5+JDK1.6+Tomcat6+Struts1.3+MySQL4.1开发演示
- struts使用拦截器注解
- 懒到极致:对mybatis的进一步精简
- 浅谈struts1和struts2框架(转载+整理)
- Maven搭建struts2+spring+hibernate环境(二)
- Maven搭建struts2+spring+hibernate环境(三)
- 国内首创Java开发者的技术体系
- Struts知识
- struts 获取客户端真实ip
- 转载--Struts1.1 validation framework 使用中的若干经验
- 初探Struts + Hibernate(二) --从HQL中取值