struts2实现文件上传功能

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

使用struts2实现文件上传功能,自带的commons-fileupload-1.3.1.jar可以轻松实现文件的上传功能,但是有个问题,如果文件大小远大于初始设置的文件大小值之后,上传就会出现如下图的问题,不知道哪位会处理这种异常,我搞了好几天,就是做不到啊。。。


第一步导包:


第二步,编写静态页面,添加文件上传项

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="uploadFile" method="post" <strong>enctype="multipart/form-data"</strong>>
		<input type="file" name="some"/>
		<input type="submit" value="ok,upload"/>
	</form>
</body>
</html>
第三步,编写struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<constant name="struts.multipart.saveDir" value="/temp/"/>  
	<package name="struts2" namespace="/demo" extends="struts-default">
		<default-action-ref name="pageNotFound"></default-action-ref>
		<global-results><!-- 定义全局Result -->
			<result name="error">/error.jsp</result>
		</global-results>
		<!-- pageNotFound设置  --->
		<action name="pageNotFound">
			<result>/upload.html</result>
		</action>
		<action name="uploadFile" class="com.alex.action.UploadFileAction">
		<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"/>
		<exception-mapping result="ioException" exception="java.io.IOException"></exception-mapping>
		<exception-mapping result="illegal" exception="java.lang.IllegalStateException"></exception-mapping>
			<result name="ok">/success.jsp</result>
			<result name="input">/error.jsp</result>
			<result name="ioException">/error.jsp</result>
			<result name="nullPoint">/error.jsp</result>
			<result name="illegal">/error.jsp</result>
		</action>
		
	</package>
</struts>
第四步,编写action

package com.alex.action;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.alex.util.FileUtil;
import com.opensymphony.xwork2.ActionSupport;

public class UploadFileAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	//拦截器传入的零时文件名称
	private File some;
	private String someFileName;
	
	public File getSome() {
		return some;
	}
	public void setSome(File some) {
		this.some = some;
	}
	public String getSomeFileName() {
		return someFileName;
	}
	public void setSomeFileName(String someFileName) {
		this.someFileName = someFileName;
	}

	public String execute(){
		System.out.println("上传开始,文件名:"+someFileName);
		if(some==null){
			return "error";
		}
		//声明一个路径
		//可以通过文件配置保存路径
		//也可以保存到项目路径下
		
		String path="/WEB-INF/upload/"+someFileName;
		path=ServletActionContext.getServletContext().getRealPath(path);
		System.out.println(path);
		try {
			FileUtil.copy(some, path);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		return "ok";
	}

}
第五步,编写FileUtil类

package com.alex.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileUtil {
	public static boolean copy(File src,String dest) throws IOException{
		if(src==null||dest==null){
			throw new RuntimeException("参数异常");
		}
		
		FileInputStream fis=new FileInputStream(src);
		BufferedInputStream bis=new BufferedInputStream(fis);
		
		FileOutputStream fos=new FileOutputStream(dest);
		BufferedOutputStream bos=new BufferedOutputStream(fos);
		
		byte[] buf=new byte[1024];
		int temp=0;
		while((temp=bis.read(buf))!=-1){
			bos.write(buf, 0, temp);
		}
		bis.close();
		bos.close();
		return true;
	}
}

最后随便写个success.jsp和error.jsp就OK了,上传问题不大,就是有一个问题,上传比设定文件大小稍微大一些的文件时,可以正确的跳到input设置去,可以文件超级大了,测试时,就直接悲剧了,我表示我所知道的办法都试过了,浪费了好几天,就是无法捕获这个exception啊,各位有什么办法啊



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

相关推荐

基于Struts2实现文件上传与下载功能详解

对于大文件下载,直接加载整个文件流可能造成内存溢出或响应缓慢。通过HTTP协议的Range头,可以实现分段下载与断点续传。= -1) {// 不返回视图。

weixin_35238815的博客 672

java中struts2实现简单的文件上传与下载

主要为大家详细介绍了java中struts2实现简单的文件上传与下载的相关资料,感兴趣的小伙伴们可以参考一下

基于Struts2文件上传功能实现与实战详解

Struts2中,要使Action能够接收上传的文件内容,必须遵循一套严格的字段命名规则。这种约定优于配置(Convention over Configuration)的设计理念,使得开发者无需额外配置即可实现自动绑定。其背后依赖的是Struts2对Apache Commons FileUpload组件返回结果的封装与值栈(ValueStack)的数据填充机制。除了使用默认的,还可通过继承该类来自定义预处理逻辑,如记录上传日志、动态调整大小限制或集成防病毒扫描。

weixin_30653091的博客 490

实现struts2文件上传文件功能

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

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

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

开发者导航 1180

Struts2框架实现文件上传

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

Java持续实践 1万+

Struts2实现文件的上传功能

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

CSU_Zipple的博客 908

基于struts2实现文件上传功能

   在web开发应用中,文件上传是很多情形下必备的一项功能。本文详细介绍如何通过struts2实现一个简单的文件上传功能。 首先了解几个术语:      MIME类型:设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。是描述消息内容类型的因特网标准。 MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型。       拦截器:是Struts 2的一

黄刚的博客 5163

struts2实现文件上传与下载功能

一、Demo介绍基于struts2框架,实现多文件的上传和下载功能实现原理图: 部分界面图: 上传成功及下载页面: 二、主要代码uploadFile.jsp:在form表单中包含一个文本框(上传用户的姓名)和两个文件上传选项.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodi

amateur_RD的博客 877

struts2实现文件上传功能

在web项目中,文件上传、头像上传这样的功能经常是要用到的,下面就以在struts2实现文件上传功能为例子,简单地理一下文件上传功能的编码思路。 项目目录结构 项目源代码 web.xml <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="

光华小丸子 1955

struts2 实现简单的文件上传、下载功能

struts2 实现简单的文件上传、下载功能

肆尾葱的博客 557

Struts2实现的多文件上传例子

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

struts2文件上传所需的全部jar包

此包是Struts2实现文件上传的所有jar包,主要包括commons-fileupload-1.2.1 jar 和commons-io-1.4 jar 包,内容很全面。

struts2实现文件上传下载

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

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

java struts2 excel上传_java中struts2实现文件上传下载功能实例解析

本文实例讲述了java中struts2实现文件上传下载功能实现方法。分享给大家供大家参考。具体分析如下:1.文件上传首先是jsp页面的代码在jsp页面中定义一个上传标签附件:然后是BaseAction中定义的相关属性其它的就省略了(也可定义在自己的Action,换下访问修饰符即可)/***Action基类**/public class BaseAction extends ActionSuppo...

weixin_42554394的博客 327

java struts2上传文件_java Struts2框架下实现文件上传功能

本文实例为大家分享了Struts2框架实现文件上传的方法,供大家参考,具体内容如下struts2的配置过程(1)在项目中加入jar包(2)web.xml中filter(过滤器)的配置xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat...

weixin_36448964的博客 230

Struts2+Android (2) 实现信息,文件上传功能

继续中午的话题,中午实现了获取WebService今晚是上传文件 本工程也实现了上传文字(废话)可以直接在服务器控制台打印出来 还是第一篇的http://blog.csdn.net/sfshine/article/details/7564328工程 struts增加一个action <!DOCTYPE struts PUBLIC "-//Apache Soft

梦想无论怎样模糊,总潜伏在我们心底,使我们的心境永远得不到安宁. 1887
上一篇: struts2继承ServletRequestAware获取request为null的问题
下一篇: 配置tomcat支持ssl
mixturer
博客等级 码龄12年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值