作者:wldandan 来源:www.matrix.org.cn 发布时间:2006-02-22 17:55:09.217
最近刚做完一个项目,用Struts1.1做的。从不懂,到熟练使用,都靠参考优快云的一些文档。但是文章上讲的并不一定适合自己,所以我把我自己做的一些东西拿上来给大家看看,互相交流一下。如果您有跟好的方法,可以和我联系。
MSN:whw_dream (AT) hotmail.com
Struts的文件上传
本文用的是Struts1.1的org.apache.struts.upload.FormFile类。很方便,不用自己写。也不用写一个jsp调用jspsmartupload就可以搞定。
选择上传文件页面:selfile.jsp
--------------------------------------------------------------------------------
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html:html>
<html:form action="/uploadsAction.do" enctype="multipart/form-data">
<html:file property="theFile"/>
<html:submit/>
</html:form>
</html:html>
--------------------------------------------------------------------------------
UpLoadAction.java
--------------------------------------------------------------------------------
import java.io.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
/**
* <p>Title:UpLoadAction</p>
* <p>Description: QRRSMMS </p>
* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
* <p>Company: jiahansoft</p>
* @author wanghw
* @version 1.0
*/
public class UpLoadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (form instanceof uploadsForm) {//如果form是uploadsForm
String encoding = request.getCharacterEncoding();
if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
{
response.setContentType("text/html; charset=gb2312");//如果没有指定编码,编码格式为gb2312
}
UpLoadForm theForm = (UpLoadForm ) form;
FormFile file = theForm.getTheFile();//取得上传的文件
try {
InputStream stream = file.getInputStream();//把文件读入
String filePath = request.getRealPath("/");//取当前系统路径
// filePath = request.getRealPath(request.getRequestURI()); //取当前系统路径
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "/" +
file.getFileName());//建立一个上传文件的输出流
//System.out.println(filePath+"/"+file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);//将文件写入服务器
}
bos.close();
stream.close();
}catch(Exception e){
System.err.print(e);
}
//request.setAttribute("dat",file.getFileName());
return mapping.findForward("display");
}
return null;
}
}
--------------------------------------------------------------------------------
UpLoadForm.java
--------------------------------------------------------------------------------
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
import org.apache.struts.upload.*;
/**
* <p>Title:UpLoadForm</p>
* <p>Description: QRRSMMS </p>
* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
* <p>Company: jiahansoft</p>
* @author wanghw
* @version 1.0
*/
public class UpLoadForm extends ActionForm {
public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";
protected FormFile theFile;
public FormFile getTheFile() {
return theFile;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
ActionErrors errors = null;
//has the maximum length been exceeded?
Boolean maxLengthExceeded = (Boolean)
request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
{
errors = new ActionErrors();
errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError("maxLengthExceeded"));
}
return errors;
}
}
//这是相对应的form,还有其他属性可以设置,具体可以参考struts的上传例子。
--------------------------------------------------------------------------------
struts-config.xml
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="uploadsForm" type="UpLoadForm" />
</form-beans>
<action-mappings>
<action name="uploadsForm" type="UpLoadAction" path="/uploadsAction">
<forward name="display" path="/display.jsp" />
</action>
</action-mappings>
</struts-config>
<!--display.jsp就是随便写一个成功页-->
相关推荐
Java文件上传实现与Struts框架应用
在Java Web开发的世界里,Struts框架无疑占据了重要的位置。本章将带您初识Struts框架,了解其核心功能和架构思想。Struts是一个开源的MVC(Model-View-Controller)框架,它将Web层的业务逻辑与展示层代码分离,让开发者可以专注于应用逻辑的编写,同时提供了一个丰富的标签库和易于扩展的插件体系。Struts 1.x系列诞生于2001年,为早期的Java EE开发提供了极大的便利。
struts中的文件上传解决
一、web.xml配置,这里将文件上传配置为upload模块。 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> Struts Blank Application action
新能源车主必看:用高德API+充电站数据制作跨城出行充电规划工具(附完整代码)
本文为新能源车主提供了一份详细的跨城出行充电规划工具构建指南。通过整合高德地图API与充电站数据,手把手教你使用Python开发一个智能规划系统,可自动规划路线并推荐沿途充电站,有效缓解里程焦虑。文章包含完整代码、核心算法解析及可视化实现,帮助车主实现个性化、高效的出行规划。
Struts上传文件
一。建立ActionFormpackage com.cnehu.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apach
避坑指南:ANSYS流固耦合计算中System Coupling数据传递设置与常见报错解决
本文深入解析ANSYS Workbench中System Coupling模块在双向流固耦合(FSI)计算中的应用,详细讲解数据传递机制、典型报错解决方案及高阶调试技巧。通过实际案例展示如何优化耦合步长、处理大变形问题,并提升并行计算效率,帮助工程师有效规避常见技术陷阱。
黑马Java第二阶段:JavaWeb(笔记)
黑马Java第二阶段:JavaWeb(笔记)
struts1.2文件上传限制
在用struts1.2做文件上传时,大文件总是上传不了,但又找不到具体原因,其实是因为struts1.2配置文件文件了限制,<controller maxFileSize="2M" inputForward="true" /> ,就是这个限制现在了大小,可以根据实际情况修改 写道 <?xml version="1.0" encoding="iso-8859-1"?> &
CANoe.Diva实战:基于CDD的UDS诊断自动化测试全流程解析
本文详细解析了使用CANoe.Diva进行基于CDD的UDS诊断自动化测试的全流程,包括环境搭建、CDD文件配置、测试范围设置、用例生成与验证、CANoe集成测试及报告分析。通过实战经验分享,帮助工程师快速掌握诊断自动化测试技巧,提升测试效率与质量。
struts2文件上传
一、文件上传页面四个要求: (1)变短必须是post提交 (2)提交类型必须是enctype="multipart/form-data",必须多段式 (3)文件使用文件上传控件<input type="file“ name="f"/> (4)name必填,不然不会上传 二、使用struts2接受文件 1、后台接受文件: 在action中写一个File对象的属性,属性名和前...
YOLO26涨点改进| TGRS 2026 | 独家创新首发、注意力改进篇| 引入CSSCA频谱-空间交叉注意力,含多种创新改进,小目标检测、图像分割、高光谱图像分类、语义分割任务任务涨点
🔥本文提出CSSCA(频谱-空间交叉注意力)模块,通过中心像素引导的光谱与空间交叉注意力机制,有效提升YOLO26模型的特征表达能力。该模块实现了光谱与空间信息的协同优化,能够自适应强化关键通道与重要空间区域,增强模型对小目标和复杂场景的感知能力。文章详细介绍了CSSCA的网络结构、工作原理及四大优势,包括精准特征表达、协同信息优化、小样本适应性和轻量化设计。同时提供了完整的代码实现和四种改进方案的YAML配置文件,包括基础版、增强版、C3k2融合版和C2PSA融合版,为YOLO26模型的性能提升
一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作
SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变
Struts2的文件上传
Struts也提供了内置标签用于文件上传<s:file>,我们称为文件选择域 与html的标签<input tyle=”file”>是一样用的 文件上传的必要前提条件 Action接收到的File对象是一个临时文件,后面需要保存到另外一个路径去 表单必须是post方法 enctype类型必须为mul...
人工智能训练师三级考试大纲深度解读|理论+实操分值分布+六大模块占比
三级人工智能训练师考试分为理论和实操两大模块(各100分,合格线60分)。理论考试包含AI基础(30%)、数据标注(25%)、模型训练(20%)、测试(15%)和系统运维(10%),题型为客观题;实操考核侧重数据标注(40%)、模型测试(35%)和系统运维(25%),采用现场操作形式。复习应优先关注AI基础和数据标注等高分值模块,实操需重点掌握标准流程和结果准确性(占评分70%)。考试要求两模块均达标,理论侧重概念理解,实操强调规范执行与文档完整。
struts1中的文件上传
在struts1和2中,分别对 commons-fileupload组件进行了包装,使文件上传操作更方便。 本文讲解如何使用struts1上传文件。 步骤: 1 编写jsp页面 2 给jsp中的form表单配置一个ActionForm 3 编写Action,处理文件上传功能 4 配置struts-config.xml文件 5 测试
052、联发科Imagiq HyperEngine架构适配:天玑9000/9200的ISP多核并行调度与Tuning Toolkit调优案例
摘要: 项目组在适配联发科天玑9200的Imagiq 890 ISP架构时,遇到多摄预览功耗过高、帧率不稳等问题。通过分析多核调度机制,调整辅核QoS通道、优化AI-ISP协同模式(采用FREERUN+运动补偿),并利用Tuning Toolkit的Pipeline Viewer动态分配负载,最终降低功耗30mA、提升画质。关键经验包括:避免多核带宽冲突、合理配置动态时钟策略,以及统一校准参数版本管理。天玑9000/9200的HyperEngine架构需优先理解多核协同逻辑,再针对性调优,否则易引发场景兼容
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
浅谈Struts2文件上传
目录 一、struts2文件上传大前提 二、Action实现 三、struts.xml配置【包含拦截器实现文件格式与文件大小的过滤】 常用struts2 配置上传文件格式 一、struts2文件上传大前提 必须将<form>表单中的method设置为”post” 必须将<form>表单中的enctype设置为”multipart/form-data” ...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
struts2 文件上传
在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。 不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。 现在使用Struts2来实现文件上传的功能,会更加简单和方便,事实上,Struts2
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
java struts 文件上传与文件下载
今天和大家继续分享java struts 文件控制上传和下载。 文件上传:指将本地文件上传到服务器指定目录下。在struts框架中,文件上传需要用到<s:file>标签,该标签是一个表单标签,要放在<s:form>标签中。现在看一个文件上传的实例,进而讲解各个标签的含义及其用法。 创建项目 把lib标签以及web.xml配置好,在之前的博客已经分享。 在src目录下...
Struts——文件上传
回顾: Struts提交的文件上传组件来上传文件: 前台 提交方式POST 表单类型:multipart/form-date input type=“file” 后台 Apache提供的FileUpload组件 核心类: FileItemFactory //FileItem的核心工厂 ServletFileUpload //servlet中文件上传的核心类 ...
Struts2文件上传(基于表单的文件上传)
•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-FileUpload组件特点 –使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能 –能够全程控制上传内容 –能够对上传文件的大小、类型进行控制 •需要下载Common-FileUpla...
struts2的文件上传
如何在Struts 2文件上传作品? Struts 2中使用的文件上传拦截器添加在Struts应用程序上传文件的支持服务。 基于Struts 2的文件上传拦截MultiPartRequestWrapper,这是自动应用的要求,如果它包含文件中的元素。然后,它增加了以下参数要求(假设上传的文件名 是文件MyFile)。 MyFile :文件-实际的文件MyFileContentType
struts文件上传和拦截器
目录前言(1)文件上传的讲解前台界面clzList.jspstruts-sy.xmlupload.jsp后台代码ClzzAction的preupload方法ClzzAction的upload方法文件上传的底层原理(2)拦截器的讲解创建拦截器OneInterceptor拦截器TwoInterceptor拦截器struts自带的拦截器拦截器的底层原理总结 前言 上面一篇已经说明了如何在使用struts...
Struts文件上传
UploadUitl.java /** * 这是一个辅助类,辅助完成上传功能。 * 可以选择将文件保存在数据库里或保存在文件系统上 * 并对文
996



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



