Struts2 实现多文件上传
来源:互联网 发布:王者荣耀显示网络异常 编辑:程序博客网 时间:2024/06/06 05:24
前台form 表单:设置method=post,enctype=multipart/form-data。
struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。
Action需要使用3个属性来封装该文件域的信息:
(1)类型为File的*属性封装了该文件域对应的文件内容;
(2)类型为String的***FileName属性封装了该文件域对应的文件的文件类型;
(3)类型为String的***ContentType属性封装了该文件域对应的文件的类型。
具体实现:
新建web项目
添加struts2相关包
myeclipse可直接下载,右击项目,如下。前台
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html> <body> <form action="upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="upload" multiple="multiple"/> <input type="submit" value="提交"/> </form> </body></html>
配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>UploadFile</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping></web-app>
配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> <constant name="struts.devMode" value="true"/> <constant name="struts.multipart.saveDir" value="/tmp"/> <constant name="struts.custom.i18n.resources" value="app"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="upload" class="com.yf.action.UploadAction"> <result>/index.jsp</result> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package></struts>
- 后台代码
public class UploadAction extends ActionSupport{ private List<File> upload; private List<String> uploadContentType; private List<String> uploadFileName; public List<File> getUpload() { return upload; } public void setUpload(List<File> upload) { this.upload = upload; } public List<String> getUploadContentType() { return uploadContentType; } public void setUploadContentType(List<String> uploadContentType) { this.uploadContentType = uploadContentType; } public List<String> getUploadFileName() { return uploadFileName; } public void setUploadFileName(List<String> uploadFileName) { this.uploadFileName = uploadFileName; } @Override public String execute() throws Exception { //文件保存路径 String path = ServletActionContext.getServletContext().getRealPath("/images"); File file = new File(path); //不存在则创建 if(!file.exists()){ file.mkdir(); } //循环将文件上传到指定路径 for(int i = 0; i< upload.size(); i++){ FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i))); } return SUCCESS; }
结果如下
阅读全文
2 0
- Struts2实现多文件上传
- Struts2实现多文件上传
- struts2实现多文件上传
- Struts2实现多文件上传
- Struts2实现多文件上传
- Struts2实现多文件上传
- Struts2实现多文件上传
- Struts2实现多文件上传
- Struts2实现多文件上传
- struts2实现多文件上传
- Struts2实现多文件上传
- Struts2 实现多文件上传
- Struts2实现文件上传
- struts2实现文件上传
- struts2实现文件上传
- Struts2实现文件上传
- struts2实现文件上传
- struts2实现文件上传
- Android技术之 必备而又容易忽视的知识 Gradle的高级用法
- 深度学习——从代码开始
- tensorflow可视化tensorboard “No graph definition files were found.” 错误
- 全面理解Java内存模型
- 读论文《Efficient Estimation of Word Representations in Vector Space》
- Struts2 实现多文件上传
- 448. Find All Numbers Disappeared in an Array(java)
- Python学习笔记——动态添加属性与方法
- 对象说睡前要敲几行代码
- lua ...的使用
- 统计代码有效行数
- 省市联动的JSON格式数据
- 面试总结-成长之路
- 总结div水平居中的方法