struts2中如何实现上传
* 引入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar
* 定义jsp
<form action="${pageContext.request.contextPath}/upload/uploadAction_saveFile.action"
name="form1" method="post" enctype="multipart/form-data" >
上传文件名称:<input type="file" name="uploadImage">
<input type="submit" value="上传">
</form>
* 创建action
public class UploadAction extends ActionSupport {
/*
* * 上传文件名称:<input type="file" name="uploadImage"> 对应的是file上传组件name属性的值
* * 上传的文件先保存为临时文件,目录和名称如下
* E:\\apache-tomcat-6.0.18\\work\\Catalina\\localhost\\itcast0706struts2\\upload__24bfe9c0_1311be9e985__8000_00000000.tmp
* * 当程序处理完毕是,struts2会删除该临时文件
* Removing file uploadImage
* E:\\apache-tomcat-6.0.18\\work\\Catalina\\localhost\\itcast0706struts2\\upload__24bfe9c0_1311be9e985__8000_00000000.tmp
*/
private File uploadImage;//对应的是file上传组件name属性的值
//上传文件的类型[格式:上传组件name属性的值+ContentType]
private String uploadImageContentType ;
//上传文件的真实名称[格式:上传组件name属性的值+FileName]
private String uploadImageFileName;
public String saveFile(){
System.out.println(uploadImageContentType+" "+uploadImageFileName);
ServletContext sc=ServletActionContext.getServletContext();
String realPath=sc.getRealPath("/pic");
try {
File destFile=new File(realPath,uploadImageFileName);
FileUtils.copyFile(uploadImage, destFile); //uploadImage.renameTo(destFile)方法也可以移动文件
} catch (IOException e) {
e.printStackTrace();
}
return "success";
}
}
* 创建strurs_upload.xml文件
<struts>
<!--配置上传文件的总开关,控制上传文件的大小(默认值是2M),是上传组件自带的
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException,
抛出的异常是上传组件自带的,
-->
<constant name="struts.multipart.maxSize" value="222097152"></constant>
<package name="upload" namespace="/upload" extends="struts-default">
<action name="uploadAction_*" class="cn.itcast.upload.UploadAction" method="{1}">
<!-- 修改默认栈中上传拦截器的属性值-->
<!--
如果使用的不是默认栈是自定义栈 而自定义栈参考了默认栈 则在param的name中需要写清楚
如defaultStack.fileUpload.maximumSize
-->
<interceptor-ref name="defaultStack">
<!-- 控制上传文件的大小,分开关,这个开关是struts2提供的 -->
<param name="fileUpload.maximumSize">12097152</param>
<!-- 配置允许上传文件的类型,如果有多个用","隔开 -->
<param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param>
<!-- 配置允许上传文件的扩展名,如果有多个用","隔开-->
<param name="fileUpload.allowedExtensions ">ppt</param>
</interceptor-ref>
<result name="success">/upload/success.jsp</result>
<!--当文件上传失败时,要转到由input属性所指向的页面,在该页面给出提示信息-->
<result name="input">/upload/error.jsp</result>
</action>
</package>
</struts>
* 测试
* 处理错误信息
* 在处理错误信息的jsp页面(error.jsp)
* 引入<%@ taglib uri="/struts-tags" prefix="s"%>
* 使用<s:fielderror></s:fielderror>显示错误信息
* 默认显示的错误信息是英文的,该英文信息存在struts2-core-2.1.8.1.jar\org\apache\struts2\struts-messages.properties文件中
内容如下
struts.messages.error.uploading=Error uploading: {0}
struts.messages.error.file.too.large=File too large: {0} "{1}" "{2}" {3}
struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0} "{1}" "{2}" {3}
struts.messages.error.file.extension.not.allowed=File extension not allowed: {0} "{1}" "{2}" {3}
注:{0}:html页面上传组件的name属性的值:<input type="file" name="uploadImage">
{1}:上传文件的真实名称
{2}:上传的临时文件(保存到临时目录的临时名称)
{3}:上传文件的类型(对struts.messages.error.file.too.large来说表示上传文件的大小)
* 修改上传文件的错误信息为中文
* 在于当前action的同级目录(其他目录也可),创建fileupload.properties文件,文件名称自定义
内容如下
struts.messages.error.uploading=上传错误: {0}
struts.messages.error.file.too.large=文件太大: {0} "{1}" "{2}" {3}
struts.messages.error.content.type.not.allowed=类型不允许: {0} "{1}" "{2}" {3}
struts.messages.error.file.extension.not.allowed=文件扩展名不允许: {0} "{1}" "{2}" {3}
* 在struts.xml文件中加载该资源文件
<!-- 配置加载自定义的国际化资源文件,有多个的话,用","隔开
* cn.itcast.converter.converter:加载cn.itcast.converter.converter.properties资源文件
* cn.itcast.upload.fileupload:加载cn.itcast.upload.fileupload.properties资源文件
-->
<constant name="struts.custom.i18n.resources"
value="cn.itcast.converter.converter,
cn.itcast.upload.fileupload"></constant>
相关推荐
开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式
电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。
浅谈Struts2文件上传
目录 一、struts2文件上传大前提 二、Action实现 三、struts.xml配置【包含拦截器实现文件格式与文件大小的过滤】 常用struts2 配置上传文件格式 一、struts2文件上传大前提 必须将<form>表单中的method设置为”post” 必须将<form>表单中的enctype设置为”multipart/form-data” ...
zabbix5+dify+ollama+deepseek+企业微信 本地部署实现故障智能分析
zabbix5告警信息deepseek自动分析
Struts2的文件上传
文件上传的概述:文件上传是将本地文件上传到服务器的指定目录下。要使用Struts2进行文件上传,首先将form表单的enctype属性值设置为multipart/form-data。文件上传还需要
Carla-编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?
编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?不妨看看这个!
智能车视觉算法实战:十字路口与弯道拐点的精准识别
本文深入探讨了智能车视觉导航中十字路口与弯道拐点的精准识别算法。通过实战经验,详细解析了如何利用纵向巡线法生成边界数组,并从中高效提取“上拐点”与“下拐点”的关键特征。文章重点分享了提升算法鲁棒性的核心技巧,包括图像预处理、ROI设置、状态机应用及多特征融合,旨在帮助开发者实现智能车在复杂路况下从“看见”到“看懂”的稳定决策。
struts2 文件上传
在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。 不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。 现在使用Struts2来实现文件上传的功能,会更加简单和方便,事实上,Struts2
minist手写数字的识别代码复现(pytorch 版本)
电脑系统:Windows 10语言环境:Python 3.8.18编译器:jupyter notebook深度学习环境:torch == 1.13.1+cu116显卡及显存: Tesla V100-PCIE-32GB卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种 具有局部连接、权重共享等特性的深层前馈神经网络. 目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的 前馈神经网络。
struts2的文件上传
如何在Struts 2文件上传作品? Struts 2中使用的文件上传拦截器添加在Struts应用程序上传文件的支持服务。 基于Struts 2的文件上传拦截MultiPartRequestWrapper,这是自动应用的要求,如果它包含文件中的元素。然后,它增加了以下参数要求(假设上传的文件名 是文件MyFile)。 MyFile :文件-实际的文件MyFileContentType
Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)
本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。
浅谈武术擂台格斗机器人大赛
武术擂台机器人赛是工科类专业的一个跨学科的竞赛项目,它涵盖了机械结构、硬件电路和计算机程序等技术领域。笔者在校期间有幸参加过四次这样的比赛,有成功也有失败,对此深有感悟。本文仅为个人观点,有说得不对的地方,望积极指出,希望能帮助到有需要的人。
Struts2文件上传(基于表单的文件上传)
•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-FileUpload组件特点 –使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能 –能够全程控制上传内容 –能够对上传文件的大小、类型进行控制 •需要下载Common-FileUpla...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)
Struts2文件上传
1、Tomcat报错处理: 2、文件上传jar包引入: 3、form表单配置: 4、Action添加属性: 5、其它: 6、源代码示例: 7、配置文件: 8、页面源码: 9、运行结果: 10、文件类型和后缀名:
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
Struts2之文件上传
由于Struts2已经对文件上传进行了封装,所以较为简单,导入Struts2相应的java包,commons-fileupload.jar、commons-io.jar是其依赖的jar包。 使用Struts2的文件上传主要有一下步骤: (1)定义文件上传的表单,包含文件上传表单项。 (2)在form上将enctype属性设置为"multipart/form-
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
Struts2 文件上传
之前我们可能使用过文件上传组件进行开发系统中文件上传的功能,但在Struts2 中为我们提供了更为简单易用的上传功能,当然虽然易用,但其实际不是对底层文件IO和HTTP的封装。下面我们介绍一下,如何在Struts2 中使用文件上传的功能。我们知识Strust2中大部分的功能都是通过拦截器实现的,当然,这里的文件上传也不例外。同样也是也采用拦截器来支持的。 下面以例子来看一下如何使
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
struts2文件上传和下载
1. struts系统中的拦截器介绍 过滤器:javaweb中的服务器组件,主要针对的请求和响应进行拦截。 拦截器:主要针对方法的调用,进行拦截器,当使用代理对象调用某个方法时候 对方法的调用进行拦截,对拦截到的方法可以进行扩展,增强 Struts2中的拦截器主要针对Action中方法的调用进行拦截 <interceptors> <!—声明n个拦截器--> <interceptor name="fileUpload" class="org.
基于struts2的文件上传
1.新建web工程,配置tomcat和struts2 2.下载Common-FileUpload框架 http://www.apache.org/,下载FileUpload和Commons IO两个jar包,加压后将两个jar包放到WEB-INF的lib目录下 3.action:FileUploadAction.java package action; import java.io.*;
实现struts2的文件上传功能
1 struts2的文件上传 1.1 文件上传准备 1.1.1 页面配置 input为file类型 input type="file" name="upload"/> 表单提交方式为post enctypt为multipart/form-data <FORM id=form1 name=form1 action="${pageContext.request.contextPath }/customer_save.action" method=post enctype="mult
1227



被折叠的 条评论
为什么被折叠?



