`
supttkl
  • 浏览: 17753 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

struts 上传文件request

    博客分类:
  • java
阅读更多
package com.defined;

 
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.struts.upload.MultipartRequestWrapper;

public class MultipartRequest extends MultipartRequestWrapper implements
		HttpServletRequest {
	private Map fieldName = null;

	public MultipartRequest(HttpServletRequest request)
			throws FileUploadException {
		super(request);
		String contentType = request.getContentType();
		// 如果是上传文件类型的form
		if ((contentType != null)
				&& contentType.startsWith("multipart/form-data")) {
			fieldName = new HashMap();
			init(request);
		}

	}

	private void init(HttpServletRequest request) throws FileUploadException {
		DiskFileUpload diskFileUpload = new DiskFileUpload();
		List items = diskFileUpload.parseRequest(request);
		Iterator iter = items.iterator();
		while (iter.hasNext()) {
			FileItem item = (FileItem) iter.next();
			if (item.isFormField()) {
				addTextParameter(item);
			} else {
				addFileParameter(item);
			}
		}
	}

	private void addTextParameter(FileItem item) {
		String name = item.getFieldName();
		String value = null;
		boolean haveValue = false;
		String encoding = request.getCharacterEncoding();

		if (encoding != null) {
			try {
				value = item.getString(encoding);
				haveValue = true;
			} catch (Exception e) {

			}
		}
		if (!haveValue) {
			try {
				value = item.getString("ISO-8859-1");
			} catch (java.io.UnsupportedEncodingException uee) {
				value = item.getString();
			}
			haveValue = true;
		}
		this.setParameter(name, value);
	}

	private void addFileParameter(FileItem item) {
		fieldName.put(item.getFieldName(), item);
	}

	public FileItem getFileItem(String name) {
		return (FileItem) fieldName.get(name);
	}

	public String getNotNullParameter(String name) {
		String temp = this.getParameter(name);
		return temp == null ? "" : temp;
	}

	public Double getDouble(String name) {
		String temp = this.getParameter(name);
		return temp == null ? null : Double.valueOf(temp);
	}

	public Float getFloat(String name) {
		String temp = this.getParameter(name);
		return temp == null ? null : Float.valueOf(temp);
	}

	public Integer getInteger(String name) {
		String temp = this.getParameter(name);
		return temp == null ? null : Integer.valueOf(temp);
	}

	public Date getDate(String name) {
		String temp = this.getParameter(name);
		return temp == null ? null : Date.valueOf(name);
	}

	public Date getNowDate() {
		return new java.sql.Date(System.currentTimeMillis());
	}
//使用方法
	public static void main(String[] args) {
		try {
			MultipartRequest req = new MultipartRequest(null/*HttpServletRequest request*/);
			FileItem fileItem = req.getFileItem("fileName");
			InputStream in = fileItem.getInputStream();
			FileOutputStream fio = new FileOutputStream("d:\\aa.gif");
			byte b[] = new byte[1024];
			while ((in.read(b, 0, 1024)) != -1) {
				fio.write(b);
				fio.flush();
			}
			fio.close();
		} catch (FileUploadException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}  
	}

}


分享到:
评论

相关推荐

    Struts2上传文件(直接用request)

    Struts2上传文件(直接用request)

    jsp+struts文件上传

    2. 创建上传文件的JSP页面。 3. 编写Action类,使用Apache Commons FileUpload处理文件。 4. 验证和保存上传的文件。 5. 显示上传结果。 通过这种方式,你可以构建一个灵活且易于维护的文件上传系统。记住,文件...

    struts 文件上传 Struts实现文件上传

    - `FormFile`: 用于封装上传文件的信息,包括文件名、类型、大小等。 ### 4. 配置文件 在Struts配置文件(struts-config.xml)中,你需要添加`multipart-config`元素到`<form-beans>`部分,指定文件上传的临时存储...

    Struts上传文件实现代码

    在上述代码中,我们限制了最大上传文件大小为5MB,并将文件保存到了服务器的一个特定目录。为了防止路径遍历攻击,应使用相对路径或者绝对路径,并确保路径安全。 最后,前端页面(例如upload.jsp)需要包含一个...

    Struts2文件上传源码

    // 处理上传文件的逻辑 } } ``` 3. **表单提交**: 在前端HTML页面,创建一个`enctype="multipart/form-data"`的表单,这样浏览器会知道需要以多部分形式发送数据: ```html ``` 4. **处理上传**: ...

    struts1的文件上传

    配置文件中可以指定上传文件的存储路径,例如在struts-config.xml中定义一个action-mapping,设置其`parameter`属性为文件上传的目录。为了更好地管理上传的文件,可以考虑创建多级目录结构,如按照日期或用户ID来...

    struts文件上传.pdf

    如果需要上传文件,该类中的相应属性应该声明为`org.apache.struts.action.FormFile`类型。Struts框架会自动将客户端上传的文件封装到FormFile对象中。 ```java public class BookForm extends ActionForm { ...

    struts2文件上传例子(支持大文件)

    首先,需要在`struts.xml`配置文件中启用文件上传插件,并设置最大上传文件大小。例如: ```xml <constant name="struts.multipart.maxSize" value="10485760"></constant> <!-- 10MB --> ...

    struts1.2文件上传demo

    `ActionForm`是Struts1.2中处理表单数据的模型类,而`File`对象则用来接收上传文件的数据。 1. **配置struts-config.xml**: 在`struts-config.xml`文件中,你需要定义一个Action,这个Action对应于处理文件上传的...

    Struts1文件上传、单文件、多文件上传(上传文件大小问题,如何设置无限制)

    本文将详细介绍如何在Struts1中实现单文件上传和多文件上传,并探讨如何解决上传文件大小限制的问题。 #### 二、单文件上传 ##### 1. JSP页面设计 为了实现单文件上传,我们需要在JSP页面中创建一个表单,该表单...

    struts多文件上传

    在Struts1.2版本中,实现多文件上传是一项常见的需求,它允许用户在一次提交中上传多个文件,这对于数据交互、资源分享等场景非常实用。在本教程中,我们将深入探讨如何在Struts1.2中实现这一功能。 首先,理解多...

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    struts2 文件上传 测试通过版

    在Struts2中,文件上传功能是常见的需求,特别是在处理用户提交表单时,比如上传图片、文档等。本文将详细讲解如何在Struts2中实现文件上传功能,并探讨相关知识点。 1. **Struts2 Action类配置**: 在Struts2中,...

    Struts1实现文件上传源码

    7. **安全性考虑**:为了确保应用的安全性,应限制上传文件的大小和类型,防止恶意用户上传大文件占用服务器资源,或者上传包含恶意代码的文件。 在提供的`UpLoadWeb`压缩包中,包含了完整的源码,包括ActionForm、...

    通过Servlet文件上传理解Struts2文件上传原理(附源码)

    在本文中,我们将深入探讨如何使用Servlet来理解Struts2中的文件上传原理。Servlet是Java Web应用程序中的一个组件,用于处理HTTP请求和响应。而Struts2是一个基于MVC(模型-视图-控制器)设计模式的开源Web应用框架...

    无中文乱码的Struts上传下载(任意文件上传)

    本教程将详细介绍如何在Struts中实现无中文乱码的文件上传与下载,并涵盖任意数量的文件上传。 首先,解决中文乱码问题的关键在于配置正确的字符编码。在Struts的配置文件`struts-config.xml`中,你需要为...

    基于struts2的文件上传+过滤器

    在基于Struts2的项目中,文件上传是一个常见的需求,例如用户上传个人头像、上传文档等。同时,为了确保系统安全和性能,我们需要对上传的文件进行一些限制,比如限制文件类型和大小。本篇文章将详细介绍如何在...

    struts2 上传文件超过最大值解决办法

    在Struts2框架中,处理文件上传是一项常见且重要的功能,尤其当涉及到大文件上传时,往往会遇到上传文件大小超过预设限制的问题。这不仅影响用户体验,还可能导致应用程序出现异常或错误。本文将深入探讨如何解决...

    struts上传struts上传

    在Struts框架中,文件上传功能是非常常见且实用的特性,尤其在处理用户需要上传图片、文档等数据时。然而,Struts的文件上传也存在一些安全风险,如著名的Struts2远程代码执行漏洞。接下来,我们将深入探讨Struts...

    struts1实现的文件批量上传

    FormFile是Struts1用来处理上传文件的类,它可以获取文件名、内容类型、大小等信息。在这个例子中,使用了一个ArrayList来存储用户选择的所有文件: ```java public class BatchUploadForm extends ActionForm { ...

Global site tag (gtag.js) - Google Analytics