struts2文件上传

Struts2框架下的文件上传与下载实现指南 Struts2是Apache组织下的一个开源的Web应用框架,其基于MVC设计模式,为Java Web应用提供了一个强大的开发基础。其特点在于将业务逻辑与展示层进行有效分离,极大地方便了开发人员对应用程序的维护和扩展。由于其良好的模块化和可配置性,Struts2在企业级应用中尤为流行,尤其适合于那些需要快速开发而又具有复杂业务逻辑的应用系统。Struts2框架主要分为几个核心组件:Model组件:用于处理业务逻辑和数据持久化。 阅读详情
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>
             
     
					    
		
		
		
         
         
   

【图像检测】基于MATLAB的火灾监测系统设计 1 简介 针对传统火灾监测系统对于大空间的室内场合和开阔的室外环境易失效的问题,提出了一种结合火灾火焰特征和烟雾特征来进行判断的数字图像型火灾监测算法.火焰颜色特征是基于RGB颜色模型中的R,G,B三基色分量和它们之间的关系来判断是否有火焰发生,烟雾模型特征是图像灰度化预处理后,基于HIS空间模型提取的,通过计算像素点与基准像素点之间距离D的大小来判断是否有火灾发生.对提出的算法进行MATLAB仿真,并和传统的基于五种算子的边缘检测算法提取火焰烟雾特征进行对比.实验结果表明,提出的火焰特征和烟雾特征提取算 阅读详情

相关推荐

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1227

浅谈Struts2文件上传

  目录 一、struts2文件上传大前提 二、Action实现 三、struts.xml配置【包含拦截器实现文件格式与文件大小的过滤】 常用struts2 配置上传文件格式  一、struts2文件上传大前提 必须将&lt;form&gt;表单中的method设置为”post” 必须将&lt;form&gt;表单中的enctype设置为”multipart/form-data” ...

nailnehc的博客 1037

zabbix5+dify+ollama+deepseek+企业微信 本地部署实现故障智能分析

zabbix5告警信息deepseek自动分析

slc14211421的专栏 3071

Struts2的文件上传

文件上传的概述:文件上传是将本地文件上传到服务器的指定目录下。要使用Struts2进行文件上传,首先将form表单的enctype属性值设置为multipart/form-data。文件上传还需要

Keep Doing this的博客 1480

Carla-编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?

编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?不妨看看这个!

DSK_981029的博客 2573

智能车视觉算法实战:十字路口与弯道拐点的精准识别

本文深入探讨了智能车视觉导航中十字路口与弯道拐点的精准识别算法。通过实战经验,详细解析了如何利用纵向巡线法生成边界数组,并从中高效提取“上拐点”与“下拐点”的关键特征。文章重点分享了提升算法鲁棒性的核心技巧,包括图像预处理、ROI设置、状态机应用及多特征融合,旨在帮助开发者实现智能车在复杂路况下从“看见”到“看懂”的稳定决策。

weixin_29061465的博客 633

struts2 文件上传

在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。  不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。  现在使用Struts2来实现文件上传的功能,会更加简单和方便,事实上,Struts2

学习笔记 1990

minist手写数字的识别代码复现(pytorch 版本)

电脑系统:Windows 10语言环境:Python 3.8.18编译器:jupyter notebook深度学习环境:torch == 1.13.1+cu116显卡及显存: Tesla V100-PCIE-32GB卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种 具有局部连接、权重共享等特性的深层前馈神经网络. 目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的 前馈神经网络。

2202_75521293的博客 2616

struts2的文件上传

如何在Struts 2文件上传作品? Struts 2中使用的文件上传拦截器添加在Struts应用程序上传文件的支持服务。 基于Struts 2的文件上传拦截MultiPartRequestWrapper,这是自动应用的要求,如果它包含文件中的元素。然后,它增加了以下参数要求(假设上传的文件名 是文件MyFile)。 MyFile :文件-实际的文件MyFileContentType

ba5189tsl的专栏 894

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 421

浅谈武术擂台格斗机器人大赛

武术擂台机器人赛是工科类专业的一个跨学科的竞赛项目,它涵盖了机械结构、硬件电路和计算机程序等技术领域。笔者在校期间有幸参加过四次这样的比赛,有成功也有失败,对此深有感悟。本文仅为个人观点,有说得不对的地方,望积极指出,希望能帮助到有需要的人。

weixin_43811044的博客 1万+

Struts2文件上传(基于表单的文件上传)

•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-FileUpload组件特点 –使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能 –能够全程控制上传内容 –能够对上传文件的大小、类型进行控制 •需要下载Common-FileUpla...

qq_42574855的博客 168

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)

kngines 1834

Struts2文件上传

1、Tomcat报错处理: 2、文件上传jar包引入: 3、form表单配置: 4、Action添加属性: 5、其它: 6、源代码示例: 7、配置文件: 8、页面源码: 9、运行结果: 10、文件类型和后缀名:

Remoa的休闲茶馆 2347

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-

麒麟木木 2309

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Struts2 文件上传

 之前我们可能使用过文件上传组件进行开发系统中文件上传的功能,但在Struts2 中为我们提供了更为简单易用的上传功能,当然虽然易用,但其实际不是对底层文件IO和HTTP的封装。下面我们介绍一下,如何在Struts2 中使用文件上传的功能。我们知识Strust2中大部分的功能都是通过拦截器实现的,当然,这里的文件上传也不例外。同样也是也采用拦截器来支持的。 下面以例子来看一下如何使

lilp_ndsc的专栏 3087

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

struts2文件上传和下载

1. struts系统中的拦截器介绍 过滤器:javaweb中的服务器组件,主要针对的请求和响应进行拦截。 拦截器:主要针对方法的调用,进行拦截器,当使用代理对象调用某个方法时候 对方法的调用进行拦截,对拦截到的方法可以进行扩展,增强 Struts2中的拦截器主要针对Action中方法的调用进行拦截 <interceptors> <!—声明n个拦截器--> <interceptor name="fileUpload" class="org.

光何 198

基于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.*;

yangxiaoshuoabc的博客 284

实现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

Student108的博客 296
上一篇: struts2通过配置使用struts2提供的验证
下一篇: struts2下载
bart2011
博客等级 码龄16年 10粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值