Struts2实现多文件上传功能

网友投稿 353 2023-04-16


Struts2实现多文件上传功能

前台form 表单:设置method=post,enctype=multipart/form-data。

struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。

Action需要使用3个属性来封装该文件域的信息:

(1)类型为File的*属性封装了该文件域对应的文件内容;

(2)类型为String的***FileName属性封装了该文件域对应的文件的文件类型;

(3)类型为String的***ContentType属性封装了该文件域对应的文件的类型。

具体实现:

新建web项目

添加struts2相关包 sOiAyc

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 List upload;

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;

sOiAyc }

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;

}

结果如下


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue网页html转换PDF(最低兼容ie10)的思路详解
下一篇:详解webpack2+node+react+babel实现热加载(hmr)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~