十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
前台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+"/"; %>
配置web.xml
UploadFile struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 *.action
配置struts.xml
/index.jsp
后台代码
public class UploadAction extends ActionSupport{ private Listupload; private List uploadContentType; private List uploadFileName; public List getUpload() { return upload; } public void setUpload(List upload) { this.upload = upload; } public List getUploadContentType() { return uploadContentType; } public void setUploadContentType(List uploadContentType) { this.uploadContentType = uploadContentType; } public List getUploadFileName() { return uploadFileName; } public void setUploadFileName(List 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; }
结果如下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。