Struts2实现多文件上传功能
发布时间 - 2026-01-11 02:56:13 点击率:次前台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;
}
结果如下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Struts2多文件上传
# Struts2上传
# Struts2文件上传
# java中struts2实现文件上传下载功能实例解析
# struts2单个文件上传的两种实现方式
# Java以struts2为例介绍如何实现图片上传
# struts2中实现多个文件同时上传代码
# 关于Struts2文件上传与自定义拦截器
# Struts2+jquery.form.js实现图片与文件上传的方法
# JavaWeb中struts2实现文件上传下载功能实例解析
# JavaEE中struts2实现文件上传下载功能实例解析
# java中struts2实现简单的文件上传与下载
# struts2+jsp实现文件上传的方法
# 该文件
# 装了
# 文件上传
# 不存在
# 表单
# 上做
# 大家多多
# 右击
# 上传
# 可直接下载
# 在原有
# 简化了
# multiple
# file
# type
# submit
# version
# xml
# input
# body
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
做企业网站制作流程,企业网站制作基本流程有哪些?
如何快速登录WAP自助建站平台?
Android okhttputils现在进度显示实例代码
个人网站制作流程图片大全,个人网站如何注销?
JavaScript如何实现继承_有哪些常用方法
高防服务器租用首荐平台,企业级优惠套餐快速部署
重庆市网站制作公司,重庆招聘网站哪个好?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Android使用GridView实现日历的简单功能
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
简单实现jsp分页
高性能网站服务器部署指南:稳定运行与安全配置优化方案
javascript中对象的定义、使用以及对象和原型链操作小结
如何用免费手机建站系统零基础打造专业网站?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何生成腾讯云建站专用兑换码?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
,怎么在广州志愿者网站注册?
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel如何使用查询构建器?(Query Builder高级用法)
JS经典正则表达式笔试题汇总
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Python面向对象测试方法_mock解析【教程】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
手机网站制作与建设方案,手机网站如何建设?
JavaScript常见的五种数组去重的方式
Python图片处理进阶教程_Pillow滤镜与图像增强
Laravel如何使用Livewire构建动态组件?(入门代码)
高端建站三要素:定制模板、企业官网与响应式设计优化
详解jQuery停止动画——stop()方法的使用
jQuery 常见小例汇总
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
如何在 React 中条件性地遍历数组并渲染元素
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
PHP 500报错的快速解决方法
简历没回改:利用AI润色让你的文字更专业
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
网站制作价目表怎么做,珍爱网婚介费用多少?
如何确保西部建站助手FTP传输的安全性?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
制作企业网站建设方案,怎样建设一个公司网站?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
iOS验证手机号的正则表达式
大连网站制作公司哪家好一点,大连买房网站哪个好?

