`
eric.zhang
  • 浏览: 127157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2处理文件上传

阅读更多
一.处理单个文件的上传操作
需要的jar包:
commons-io-1.3.2.jar
commons-fileupload-1.2.1.jar
及Struts的jar包


1.fileUpload.jsp

 <body>
    <form action="fileUpload.action" method="post" enctype="multipart/form-data">
    username: <input type="text" name="username"><br>
    file: <input type="file" name="file"><br>
    <input type="submit" value="submit">
    </form>
  </body>


2.FileUploadAction

package com.eric.struts2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 
 * @author eric 上传单个文件
 */
public class UploadAction extends ActionSupport {
	private String username;
	// 获取上传的文件名称:file为前台jsp中 input type=file 的name值
	private File file;
	// 获取上传的文件名称:固定格式 file + FileName
	private String fileFileName;
	// 获取上传的文件类型mime类型:固定格式 file + ContentType
	private String fileContentType;
         //file.getName()方法得到的是上传的临时文件的名字
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public File getFile() {
		return file;
	}
	public void setFile(File file) {
		this.file = file;
	}
	public String getFileFileName() {
		return fileFileName;
	}
	public void setFileFileName(String fileFileName) {
		this.fileFileName = fileFileName;
	}
	public String getFileContentType() {
		return fileContentType;
	}
	public void setFileContentType(String fileContentType) {
		this.fileContentType = fileContentType;
	}
	/**
	 * 处理文件上传的方法
	 */
	@Override
	public String execute() throws Exception {
		//取得存放上传文件的目录路径
		String root = ServletActionContext.getRequest().getRealPath("/upload");
		//文件上传,IO操作,写到磁盘目录中去
		InputStream is = new FileInputStream(file);
		System.out.println("path: " + file.getAbsolutePath());
		System.out.println("file: " + file.getName());
		System.out.println("fileFileName: " + fileFileName);
		File destFile = new File(root, fileFileName);
		OutputStream os = new FileOutputStream(destFile);
		byte[] buffer = new byte[400];
		int length = 0;
		while (-1 != (length = is.read(buffer))) {
			os.write(buffer, 0, length);
			//Thread.sleep(1000);
		}
		is.close();
		os.close();
		return SUCCESS;
	}
}



3.struts.xml

<action name="fileUpload" class="com.eric.struts2.UploadAction">
			<result name="success">/fileUploadResult.jsp</result>
		</action>


4.fileUploadResult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  <body>
    username: <s:property value="username"/><br>
    name:<s:property value="fileFileName"/><br>
    type:<s:property value="fileContentType"/>
  </body>
分享到:
评论

相关推荐

    struts2实现文件上传下载

    Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List&lt;FileInfo&gt;`类型的字段,用于接收上传的文件信息。`FileInfo`是自定义的类,包含`File`对象...

    struts2文件上传例子.rar

    通过学习这个例子,开发者可以了解到Struts2处理文件上传的基本流程,为自己的项目提供参考。在实际开发中,我们还需要考虑到安全性问题,如防止文件覆盖、非法文件上传等,确保系统的稳定性和安全性。

    Struts2多个文件上传

    Struts2本身并不包含一个内置的请求解析器来处理文件上传。相反,它依赖于第三方库,如Jakarta和Commons-FileUpload,来解析HTTP请求中的文件数据。Struts2对这些库进行了封装,使得文件上传的代码更加简洁,同时...

    struts2实现多文件上传功能

    接着,创建一个Action类,该类需要继承自`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器,这样Struts2才能处理文件上传请求。例如,我们可以创建一个名为`ManyFileUploadAction`的类: ```java ...

    struts2文件上传下载源代码

    1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该Action负责处理文件上传请求。Action的类需要继承自`ActionSupport`,并覆盖`execute()`方法,以便处理上传的文件。 2. **设置...

    struts2 实现文件批量上传

    1. **文件上传组件**:在Struts2中,我们通常使用`Commons FileUpload`库来处理文件上传。这个库提供了处理多部分HTTP请求的能力,是Java中处理文件上传的标准库。我们需要在Struts2配置文件中引入对应的拦截器`...

    swfuplaod+struts2实现多文件上传

    3. **创建Struts2 Action**:在Struts2框架中,创建一个处理文件上传的Action类,该类通常会包含一个`List&lt;HttpServletFileWrapper&gt;`类型的属性,用于接收上传的文件。 4. **编写Struts2配置**:在struts.xml配置...

    完整struts2文件上传示例

    `struts.multipart.parser`属性应设置为`jakarta`,这是Struts2处理文件上传的方式。例如: ```xml &lt;constant name="struts.multipart.parser" value="jakarta"/&gt; ``` 同时,确保`struts2-convention-plugin`或`...

    struts2框架下的文件上传

    然后,在struts.xml配置文件中启用`struts.multipart.parser`参数为`copy`,这样Struts2会自动处理文件上传。 ```xml &lt;constant name="struts.multipart.parser" value="copy"/&gt; ``` 在Action类中,你可以这样...

    struts2文件上传jar

    2. **上传组件**:Struts2使用Apache Commons FileUpload库来处理文件上传。这个库负责解析请求中的多部分数据,将文件内容分离出来。`commons-fileupload.jar` 是这个库的实现,它包含了处理文件上传的基本类和接口...

    struts2上传文件源代码

    在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...

    Struts2实现文件上传

    Struts2是一个强大的MVC框架,广泛应用于Java Web开发中,尤其在...总之,Struts2提供的文件上传功能使得在Java Web应用中处理文件上传变得简单而高效。通过合理的配置和编码实践,可以构建稳定、安全的文件上传系统。

    Struts2之struts2文件上传详解案例struts011

    接着,我们需要在Struts配置文件(struts.xml)中配置Action,确保它能够处理文件上传的请求。配置通常包括Action的名称、对应的类以及结果页面。例如: ```xml &lt;result name="success"&gt;/success.jsp ...

    struts2文件上传

    在Struts2中,你可能需要创建一个Action类来处理文件上传的逻辑。Action类通常会有`@RequestParam`注解的方法,如`@RequestParam("file") File file`,用于接收上传的文件。同时,你也需要一个` ...

    struts2实现文件上传显示进度条效果

    首先,我们需要理解Struts2处理文件上传的基本原理。在Struts2中,文件上传是通过实现`MultiPartRequest`接口的`JakartaMultiPartRequest`类来完成的。这个类是Struts2对Servlet API中的`CommonsFileUpload`库的封装...

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

    Struts2使用Apache的Commons FileUpload库来处理文件上传。这个库能够解析HTTP请求中的多部分/form-data格式的数据,这是浏览器在提交包含文件的表单时使用的标准格式。 2. **配置Struts2** 首先,你需要在Struts...

    Struts2文件上传源码

    对于更复杂的需求,可以利用Struts2的拦截器和插件来扩展功能,或者考虑使用其他专门处理文件上传的库,如Spring MVC的`MultipartFile`。理解源码有助于你更好地掌握Struts2的工作原理,从而在遇到问题时能更高效地...

    Struts2文件批量上传

    在Struts2中,通过集成`Commons FileUpload`,可以方便地处理文件上传请求。 要实现Struts2的文件批量上传,首先需要在`struts.xml`配置文件中添加相应的action配置,指定接收文件的Action类。Action类中需要定义一...

    struts2文件上传源码和步骤

    在 Struts2 中,文件上传功能是通过特定的拦截器(`FileUploadInterceptor`)来实现的。以下是对标题和描述中所述知识点的详细解释: 1. **文件上传原理**: 文件上传的本质是客户端浏览器将本地文件以二进制流的...

    struts2多文件的上传

    在文件上传场景下,`org.apache.struts2.interceptor.FileUploadInterceptor`是专门用来处理文件上传的拦截器。 1. **配置Struts2的文件上传** 在`struts.xml`配置文件中,我们需要启用文件上传支持。这可以通过...

Global site tag (gtag.js) - Google Analytics