1.工程如图:

2.UserAction.java
package com.ask.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport{
private File myFile;
private String myFileContentType;
private String myFileFileName;
public String getMyFileContentType() {
return myFileContentType;
}
public void setMyFileContentType(String myFileContentType) {
this.myFileContentType = myFileContentType;
}
public String getMyFileFileName() {
return myFileFileName;
}
public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
}
public File getMyFile() {
return myFile;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String test() throws IOException{
System.out.println(myFile);
System.out.println(myFileFileName);
System.out.println(myFileContentType);
String path = ServletActionContext.getServletContext()
.getRealPath("/upload");
System.out.println("path:"+path);
try {
InputStream file1=new FileInputStream(myFile);
path=path+File.separator+myFileFileName;
System.out.println(path);
OutputStream os=new FileOutputStream(path);
byte[] buf=new byte[1024*1024];
int len=0;
while((len=file1.read(buf))!=-1){
os.write(buf,0,len);
}
file1.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return "test";
}
}
3.UserAction1.java
package com.ask.action;
//第一种方法;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction1 extends ActionSupport{
// myFile属性用来封装上传的文件
private File myFile;
// myFileContentType属性用来封装上传文件的类型
private String myFileContentType;
// myFileFileName属性用来封装上传文件的文件名
private String myFileFileName;
//获得myFile值
public File getMyFile() {
return myFile;
}
//设置myFile值
public void setMyFile(File myFile) {
this.myFile = myFile;
}
//获得myFileContentType值
public String getMyFileContentType() {
return myFileContentType;
}
//设置myFileContentType值
public void setMyFileContentType(String myFileContentType) {
this.myFileContentType = myFileContentType;
}
//获得myFileFileName值
public String getMyFileFileName() {
return myFileFileName;
}
//设置myFileFileName值
public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
}
public String test() throws Exception {
//基于myFile创建一个文件输入流
InputStream is = new FileInputStream(myFile);
// 设置上传文件目录
String uploadPath = ServletActionContext.getServletContext()
.getRealPath("/upload");
// 设置目标文件
File toFile = new File(uploadPath, this.getMyFileFileName());
// 创建一个输出流
OutputStream os = new FileOutputStream(toFile);
//设置缓存
byte[] buffer = new byte[1024];
int length = 0;
//读取myFile文件输出到toFile文件中
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
System.out.println("上传文件名"+myFileFileName);
System.out.println("上传文件类型"+myFileContentType);
//关闭输入流
is.close();
//关闭输出流
os.close();
return "test";
}
}
4.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>
<!-- 返回json数据要配置,要继承json-default包 -->
<package name="user" namespace="/user" extends="struts-default">
<action name="test" class="com.ask.action.UserAction" method="test">
<result name="test">
/success.jsp
</result>
<interceptor-ref name="fileUpload">
<param name="allowedTypes">
image/png,image/gif,image/jpeg
</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
5.index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="user/test" enctype="multipart/form-data" method="post">
<s:file name="myFile"></s:file>
<input type="submit" name="提交">
</s:form>
</body>
</html>
分享到:
相关推荐
在这个"Struts文件上传示例"中,我们将深入探讨如何在Struts框架下实现文件上传功能,以及相关的关键知识点。 首先,理解文件上传的基本流程至关重要。在Web应用中,用户通过表单选择本地文件,然后提交到服务器。...
JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...
Struts 提供了强大的支持来处理文件上传操作。下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的...
本篇文章将详细探讨Struts文件上传大小限制的问题。 首先,我们需要理解文件上传的基本流程。在Struts中,当用户通过表单提交文件时,数据会被封装到`ActionForm`对象中,然后由Struts的控制器组件处理。默认情况下...
### Struts文件上传知识点 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,它简化了基于Java的Web应用程序开发过程。Struits框架提供了一种结构化的方式来组织代码,使得开发更加...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Struts框架实现文件上传功能。这是一个在Web开发中常见的需求,特别是在处理用户提交的数据时。Struts是一个基于MVC(Model-View-Controller)设计模式的...
Apache Commons FileUpload库是Struts文件上传的核心,它提供了处理`multipart/form-data`请求的能力。你需要在项目中引入这个库,并在Action中使用`FileItemFactory`和`ServletFileUpload`来解析请求中的文件项。 ...
一、Struts文件上传大小限制的配置 1. **struts-default.xml配置** 在Struts2框架中,我们可以通过修改`struts-default.xml`或自定义的配置文件来设置文件上传的最大大小。在`<constant>`标签中,可以设置以下两个...
"Struts文件上传下载"是Struts框架中的一个重要功能,允许用户通过Web界面上传文件到服务器,同时也支持从服务器下载文件到用户的本地设备。在实际的业务场景中,例如在线文档共享、图片分享、文件管理等,文件上传...
Struts文件上传是Java Web开发中的一个重要功能,它允许用户通过Web界面上传文件到服务器。在Struts框架中实现文件上传,主要涉及到Struts的ActionForm、Servlet API以及相关的配置文件。下面将详细介绍Struts文件...
在本项目中,"Struts文件上传和Excel导出"涵盖了两个关键功能:文件上传和数据导出到Excel。这里我们将深入探讨这两个主题。 **文件上传** 1. **表单设计**:在HTML页面上,我们需要一个`<input type="file">`标签...
Struts文件上传是一个在Java Web开发中常见的功能,主要用于允许用户通过Web应用程序上传文件到服务器。Struts是Apache软件基金会的Jakarta项目中的一个开源框架,它基于Model-View-Controller(MVC)架构模式,旨在...
首先,我们来了解一下Struts文件上传的基本步骤: 1. **配置struts.xml**:在Struts配置文件中,你需要定义一个Action,这个Action将处理文件上传请求。通过`<action>`标签设置`executeResult`方法,以及与之关联的...
### Struts 文件上传下载程序详解 #### 一、概述 Struts 是一款开源的MVC框架,被广泛应用于Java Web应用程序开发中。本篇将基于一个具体的`struts`文件上传下载程序进行深入剖析,旨在帮助读者理解Struts在文件...
总结,Struts文件上传实例展示了如何在Java Web应用中使用Struts框架实现文件上传功能。这个过程涉及Struts配置、表单Bean、Action类以及服务器端的文件处理。理解和掌握这个实例,可以帮助开发者更好地应对实际项目...
这个"struts文件上传例子"很可能是展示如何在Struts应用中处理文件上传的一个示例项目。 首先,你需要在JSP页面上创建一个`<input type="file">`元素,让用户选择要上传的文件。然后,将该表单提交到一个对应的...
在这个"struts文件上传小项目"中,我们将探讨如何利用Struts框架实现文件上传功能,这是一个常见的Web应用程序需求。 首先,我们需要了解Struts的配置文件`struts-config.xml`。在这个项目中,它会定义一个或多个...