`
peng_jian_ming
  • 浏览: 260148 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java上传文件同时含有表单域的实现

    博客分类:
  • Java
阅读更多
package com.yc.eap.util;

import java.io.File;
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.FileUploadBase;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.log4j.Logger;

public class UpLoad {

public static final Logger logger = Logger.getLogger(UpLoad.class);
private HttpServletRequest request = null;
private UpLoad instance = new UpLoad(request);
private Map<String,Object> map = new HashMap<String,Object>();

public UpLoad(HttpServletRequest request){
this.request = request;
}

public Map upLoad(){
    String name = null;
    DiskFileUpload fu = new DiskFileUpload();
    /**用于设定请求消息中实体内容的最大允许大小,这里设置最大上传文件的大小为200M*/
    fu.setSizeMax(200*1024*1024);
    /**设置用临时文件来存放临时解析出的数据值,临时数据值的临界值为1M*/
    fu.setSizeThreshold(1024*1024);
    /**用于存放临时文件的存放目录,必需为绝对路径,如果不设定将存放在Tomcat目录下的temp文件下*/
    //fu.setRepositoryPath("");
    /**parseRequest(request)方法是DiskFileUpload的重要方法是Http请求的入口,如果请求消息中的实体不是
     * "multipart/form-data",该方法将抛出异常*/
    FileUploadBase.isMultipartContent(request);
    List filelist = null;
try {
filelist = fu.parseRequest(request);
} catch (FileUploadException e) {
logger.info("消息实体不是multipart/form-data类型"+e.getMessage());
map.put("flag", "false");
return map;
}
Iterator i = filelist.listIterator();
    while(i.hasNext()){
    FileItem fi = (FileItem)i.next();
    if(fi.isFormField()){
    String fieldName = fi.getFieldName();
    String fieldValue = fi.getString();
    map.put(fieldName, fieldValue);
    }else{
    String fileName = fi.getName();
    if(fileName.trim().equals("")){
    continue;
    }else{
    int start = fileName.indexOf('\\');
    name = fileName.substring(start+1);
    //察看此获取的文件名称
    logger.info("文件的名称"+name);
    /**此处需要设置获取应用的路径名称用来存放文件*/
    File file = new File("",name);
    try {
fi.write(file);
} catch (Exception e) {
logger.info("文件写入错误"+e.getMessage());
map.put("flag", "false");
}finally{
fi.delete();
}
    }
    }
    }
return map;
}

public UpLoad getInstance(HttpServletRequest request) {
return instance;
}

}
分享到:
评论
1 楼 mickeymak 2008-08-26  
你好, 看了你的代码, 不错

不过我有个疑问, 就是如果表单中有同名但不同值的元素, 譬如同名的<checkbox>但有很多值, 可能会有问题哦, 能完善一下吗?

相关推荐

    java实现文件批量上传

    在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...

    java图形化实现文件上传

    利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...

    java实现大文件上传并有进度条及其代码解析

    本文将详细介绍如何使用Java实现大文件的上传并展示进度条,同时解析相关的代码实现。 1. **大文件分块上传** 大文件上传的关键在于避免一次性加载整个文件到内存,因为这可能导致内存溢出。Java中,我们可以使用`...

    JAVA表单上传多个文件 java web form表单上传多个文件.zip_form表单post提交

    在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...

    Java自带的HttpURLConnection访问接口实现文件上传

    在本文中,我们将深入探讨如何使用HttpURLConnection实现文件上传,同时也会涉及普通参数的传递。 首先,我们需要理解HTTP请求的基本结构。HTTP请求通常由以下几个部分组成:请求行、请求头、空行和请求体。在文件...

    java代码实现文件上传和下载

    在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字

    java大文件上传

    本篇将详细讲解如何使用`plupload`与Java实现大文件上传。 `plupload`是一个强大的多浏览器文件上传插件,支持多种浏览器和多种上传方式,包括传统的表单提交、IFrame、Flash、Silverlight以及HTML5。它具有断点续...

    JAVA 上传ZIP,RAR文件并解压

    在Java编程环境中,上传并处理ZIP和RAR压缩文件是一项常见的任务,特别是在文件传输、数据存储以及备份场景下。本文将详细讲解如何实现这个功能,包括文件上传、实时进度跟踪、指定解压路径以及解压过程。 首先,让...

    性能最好的Java文件上传组件

    Apache Commons FileUpload是Java社区广泛使用的文件上传组件,它允许开发者轻松地处理HTTP请求中的多部分表单数据,包括文件上传。然而,对于云存储的集成,我们通常需要结合云服务商提供的SDK,比如腾讯云的Java ...

    java大文件分块上传断点续传demo

    在Java开发中,大文件上传是一项常见的需求,尤其是在云存储、文件分享等场景下。由于网络环境的不稳定性,单纯的一次性上传大文件可能会因为网络中断而导致上传失败,这时就需要断点续传功能来保证文件传输的可靠性...

    java多线程加队列上传文件_后台处理

    本文将详细介绍一个基于Java实现的多线程文件上传系统,并结合队列管理技术来优化后台处理流程。该系统通过创建多个线程来并行处理客户端的文件上传请求,同时利用队列结构来协调任务的调度与执行。 #### 关键技术...

    java实现图片上传并显示

    在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...

    ajax实现java文件下载

    为了克服这一问题,开发人员通常会利用Ajax技术来实现异步文件下载,使得用户在下载文件的同时仍能保持页面的正常操作。本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax*...

    java实现pdf上传、下载、在线预览、删除、修改等功能

    在Java编程环境中,处理PDF(Portable Document Format)文件是一项常见的任务,这通常涉及到文件的上传、下载、在线预览、删除以及修改等操作。以下是对这些功能的详细说明: 1. **PDF上传**: PDF文件的上传主要...

    java上传大文件带进度条

    可自主限制上传文件的文件类型 showProgress &quot;&quot; &quot;&quot; &quot;&quot; 方法的第二个参数为限制上传文件类型 多文件时用 ‘|’ 进行分割 如: zip| rar| jif

    文件上传java测试程序.rar

    这个"文件上传java测试程序.rar"是一个演示了如何在Java Web环境下实现文件上传的小项目,开发工具是IntelliJ IDEA(简称IDEA)。下面我们将深入探讨文件上传的核心知识点及其在Java中的实现方式。 1. **Servlet ...

    Java文件上传下载实例(含详细注释)

    在Java编程领域,文件上传和下载是常见的功能...通过阅读和运行这个TestUp文件,你可以更好地掌握Java文件上传下载的具体实现。实践中,你可能需要结合实际项目需求调整这些代码,例如添加权限控制、进度显示等功能。

    java实现带进度条的文件上传

    8. **前端技术进步**:随着技术的发展,现代浏览器已经支持HTML5的File API,可以直接在HTML页面中实现文件上传和进度条,不再需要依赖Flash插件。然而,对于旧版浏览器的兼容性,swfupload仍是一个可行的选择。 综...

    java文件、图片上传(表单、Ajax)

    本教程将重点讲解如何在Java环境下,通过表单和Ajax两种方式实现文件及图片的上传,并提供了一个可以直接在Eclipse中导入并运行的示例项目。让我们深入探讨这两个方法。 首先,我们来看表单上传。在HTML中,我们...

Global site tag (gtag.js) - Google Analytics