struts2实现文件上传

Struts2文件上传的实现过程详解 通过以上配置和代码的实现,就可以在Struts2框架中实现文件上传功能。在文件上传过程中,Struts2会自动将上传的文件保存到临时目录中,并提供相应的属性来访问上传的文件信息。文件上传是Web开发中常见的功能之一,Struts2框架提供了方便的方法来实现文件上传功能。本文将详细介绍Struts2文件上传的实现过程,包括配置文件的设置和代码的编写。在配置文件中,需要添加文件上传的拦截器配置以及相关的Action配置。是Struts2提供的文件上传拦截器,用于处理文件上传的请求。用于接收上传的文件, 阅读详情

struts2 支持FileUpload 和 COS方式实现文件上传

默认也是使用FileUpload方式。

1)struts.xml文件中指定上传解析器:

<constant name="struts.multipart.parser" value="jakarta"></constant> 

2)导入FileUpload支持的jar包。

3) Action类:

public class Upload {

    private String name;  // 表单的name属性
    private String age;      // 表单的age属性
    private File upload;  // 表单的上传文件
    private String uploadFileName; // 上传文件名称
    private String uploadContentType;  // 上传文件类别
    private String savePath;  // 保存路径,依赖注入方式获取
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public File getUpload() {
        return upload;
    }
    public void setUpload(File upload) {
        this.upload = upload;
    }
    public String getUploadContentType() {
        return uploadContentType;
    }
    public void setUploadContentType(String uploadContentType) {
        this.uploadContentType = uploadContentType;
    }
    public String getUploadFileName() {
        return uploadFileName;
    }
    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }
    public String getSavePath() {
        return savePath;
    }
    public void setSavePath(String savePath) {
        this.savePath = savePath;
    }
    public String execute() throws Exception{
        FileOutputStream fos = new FileOutputStream(savePath+"\\"+uploadFileName);
        FileInputStream fis = new FileInputStream(upload);
        
        byte[] buffer = new byte[1024];
        int len = 0;
        while( (len = fis.read(buffer)) > 0 ){
            fos.write(buffer,0,len);
        }
        fis.close();
        fos.close();
        return success;
    }
}

4)struts.xml文件配置:

<action name="upload" class="com.dcsoft.struts.login.actions.Upload">
            <param name="savePath">d:\upload</param>
            <result>/index.jsp</result>
 </action>

5)如果需要对上传文件类型和文件大小做限制,可以手动或者使用struts内部拦截器的方式。

手工方式,Action里已经获取了***ContentType,可以做判断;

文件大小,可以使用File.length()方法返回文件的大小判断。

struts拦截器方式:

struts-default包里定义一个fileUpload拦截器,可以引用该拦截器

<action name="upload" class="com.dcsoft.struts.login.actions.Upload">
            <interceptor-ref name="fileUpload">
                <param name="allowedTypes">text/plain, image/png</param>
                <param name="maximumSize">1024</param>
            </interceptor-ref>

<interceptor-ref name="defaultStack" />

<param name="savePath">d:\upload</param>

            <result name="input">/upload.jsp</result>
            <result>/index.jsp</result>
</action>

6)为了消除控制台出现的使用tomcat临时目录信息,配置"struts.multipart.saveDir"属性。

7)多文件上传,只要把File ***FileName ***ContentType采用数组形式

private File[] upload;

private String[] uploadFileName;

private String[] uploadContentType;


Struts 2 文件上传编程:实现文件上传功能的完整指南 在Struts 2框架中,通过使用合适的配置和编程技巧,可以轻松地实现文件上传功能。请注意,上述代码示例中的文件保存路径和文件大小限制等细节是可以根据项目需求进行调整的。此外,为了确保安全性,建议对上传的文件进行适当的验证和过滤,以防止恶意文件上传和安全漏洞。在上述代码中,form元素的action属性指定了文件上传请求的处理URL。上述配置中,将"uploadFile"请求映射到FileUploadAction类,并根据执行结果返回相应的结果页面。上述配置中,将文件上传的最大大小设置为1MB。 阅读详情

相关推荐

Struts2与Uploadify实现带进度条的文件上传

本文还有配套的精品资源,点击获取 简介:结合Struts2框架与Uploadify插件实现文件上传功能,通过进度条提升用户体验。文章详细介绍了如何集成Uploadify,设置参数,创建Struts2 Action,配置Result以及处理文件上传和安全性问题。同时强调了测试与优化的重要性,确保上传功能既安全又用户友好。 1. Struts2框架介绍与配置 1...

weixin_33419305的博客 1098

开发者导航:Struts2学习笔记之:文件上传

Struts也提供了内置标签用于文件上传,我们称为文件选择域,这与html的标签是一样用的。

开发者导航 1190

Struts2框架下的文件上传和下载实现指南

Struts2框架是由OpenSymphony项目组开发的一个开源MVC框架,它是基于WebWork框架的优秀特性并结合了Struts1的优点而发展起来的。Struts2的核心价值在于分离表示层和业务逻辑层,提供了一个更加灵活和强大的方式来构建Web应用程序。在Struts2框架中,处理文件上传请求的后台类通常被定义为Action类。Action类在Struts2中扮演着控制器的角色,是MVC模式中C的关键部分。创建一个Action类需要继承自类或者实现Action接口。

weixin_42323064的博客 688

Struts2实现文件的上传功能

需求来源于生活:一个业余程序员的突发奇想 以前做班委的时候,经常要向班里收集各种各样的资料。既要对已交同学的文件作出统一规范化的命名,又要及时提醒那些迟交的同学该交资料了。这是一项重复性的工作。 老师以前教育我们机器是最适合做重复性工作的,于是便有了这样一个小小的需求:为自己班级实现一个统一的提交作业的平台。 说干就干。 这个小项目的核心就在于上传下载。同学们上传,班委(管理员)统一打包下载资

CSU_Zipple的博客 909

Struts2框架下的文件上传与下载实现指南

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

weixin_42466857的博客 955

实现struts2的文件上传文件功能

NULL 博文链接:https://yqshfut.iteye.com/blog/619870

Struts2框架实现文件上传

Struts2框架实现文件上传开发环境系统:Windows10 版本1709JDK:1.8.0_161 32位IDE: Spring Tool Suite 3.7.3 32位Struts2版本:2.3.24服务器版本:apache-tomcat-7.0.52 单文件的上传环境搭建导入必要的jar包 必须有commons-fileupload-1.3.1.jar包. 在开发Struts2框架...

Java持续实践 1万+

struts2实现文件上传下载

在struts2基础上实现的包括单文件、多文件的上传及下载

Struts2实现文件上传

一视图 1uploadForm.jsp <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML...

实践求真知 224

Struts2实现的多文件上传例子

NULL 博文链接:https://hdxiong.iteye.com/blog/338026

从零开始掌握OBD-II:汽车诊断开发的核心技术与实战解析

本文深入解析OBD-II汽车诊断系统的核心技术,包括ECU通信协议、故障码解析及诊断工具开发实战。通过详细的协议分析和代码示例,帮助开发者快速掌握汽车诊断开发技能,实现从零到精通的进阶。特别适合从事汽车电子开发和OBD检测的技术人员参考学习。

weixin_42528780的博客 438

实现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的博客 297

FPGA实战:基于Basys3的多功能数字钟设计与实现

本文详细介绍了基于Basys3开发板的多功能数字钟设计与实现过程,涵盖FPGA开发、SystemVerilog编程及7段数码管驱动等关键技术。通过模块化设计实现时钟分频、时间计数、按键处理等功能,并提供了优化显示驱动和调试技巧,帮助开发者快速掌握数字电路设计核心概念。

weixin_29186249的博客 659

struts2实现文件上传步骤

struts2实现文件上传步骤(详细请看图片)

genyy_chen的博客 185

基于深度学习的中文方言识别模型训练实战

本文介绍了一个基于深度学习的中文方言识别模型开发流程。项目采用PyTorch框架和Chinese-BERT-wwm预训练模型,构建了包含BERT基础层、方言特征增强层和注意力机制的多方言分类系统。文中详细阐述了数据收集策略,包括从社交媒体、语料库和众包平台获取多源数据,并实现了文本清洗、同义词替换和回译等数据增强技术。模型架构部分展示了如何在BERT基础上添加方言特征提取层和多头注意力机制来提升识别性能。该方案支持普通话、粤语等6种主要方言的识别,目标准确率达90%以上,响应时间小于100ms,适用于智能客

电脑管家 1732

【10. Wi-Fi 通用模组-小米 IoT 平台-如何进行硬件调试】

调试APP功能:从米家服务器缓存读取设备状态,等同于米家APP 的环境,开发者使用该调试器可模拟用户使用设备的实际情况,即调试米家 App 中的扩展程序。- 调试固件:调试器从固件读取设备状态,用于调试设备模组固件的某个单项功能,开发者使用该调试器可针对性地调试设备的某个功能。小爱语控测试工具:如果当前产品可被小爱语控,则可以使用该工具调试语控效果。调试APP功能(云端缓存)

tuoyuanO的博客 1041

在Struts 2中实现文件上传

详细请点击:http://www.verydemo.com/demo_c140_i19411.html 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题, 所以今天我们就来讨论一下这个问题。 实现原理 Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fi...

yz16808334330的专栏 212

PCL 点到面的ICP算法【2024最新版】

经典的点到面的ICP算法。博客长期更新,本文最新更新时间为:2024年10月18日。

点云侠的博客 36万+

struts2实现的文件上传下载案例(一)、FileUpLoad

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你需要这些资料,⬅专栏获取on>

2401_86086877的博客 2100

基于树莓派4B与NCNN的YOLOv8高效部署实战:无GPU环境下的C++加速优化全流程指南**

本文详细介绍了在树莓派4B上基于NCNN框架部署YOLOv8目标检测模型的全流程。内容包括:从PyTorch模型导出NCNN格式文件、树莓派环境配置(OpenCV和NCNN编译)、C++实现代码解析(含模型加载、推理及后处理),以及实际部署测试结果。在树莓派4B上达到约2FPS,并提供INT8量化、多线程等优化建议。该方案为无GPU设备提供了轻量化目标检测的实用部署方案,适合边缘计算场景。

FJN110的博客 917

VS2019 C# 连接IBM DB2数据库并查询数据表

操作系统:win10 64位 C#:VS2019 数据库:IBM DB2v11.1_win64_expc 其他工具:IBM Data Studio ibm_ds4130_win 步骤一:使用命令行或是IBM DB2工具:Data Studio,创建一个数据库。这里名称为:Student CREATE DATABASE "Student" AUTOMATIC STORAGE YES ...

坚韧与专注 3796

Struts2:利用struts2实现文件上传

文件上传:三要素action完整案例说明上传文件过多或者重复上传 因为今天写项目的时候用到了,struts2去实现文件上传的功能,感觉相对与以前用servlet实现上传简单了不少,于是,今天就来总结以下struts2的文件上传功能的实现。 三要素 一,表单的提交方式必须是post方法。 get方式不能,是因为get方式有上传有大小的限制。 二,在form表单上一定要设置enctype=“mul...

稀饭 913

innovus中如何设置cts参数

上面是设置cts的一般设置,如果需要对某些skew group或者某些clock tree设置不一样的参数,如需要对clk1这个clock设置不一样的inverter,可以使用。需要查询已经设置过的ccopt参数,可以使用get_ccopt_property去查询,方法和set_ccopt_property一致。言归正传,cts的设置命令是set_ccopt_property,获取命令是get_ccopt_property。另外,set_ccopt_property提供一套命令查询方法。

芯冰乐 545
上一篇: FileUpload上传组件核心代码
下一篇: struts2实现文件下载
dcsoft_nick
博客等级 码龄17年 14粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值