`
peng_jian_ming
  • 浏览: 261419 次
  • 性别: 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中,我们可以使用`...

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

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

    Java中,当表单含有文件上传时,提交数据的如何读取(吐血版)

    在Java Web开发中,处理包含文件上传的表单提交是一项常见的任务。当用户通过HTML表单上传文件时,表单的`enctype`属性通常设置为`multipart/form-data`,以便能够传输二进制数据,如图片、文档等。本文将深入探讨...

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

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

    JAVA 上传ZIP,RAR文件并解压

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

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

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

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

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

    java做的一个带进度条的文件上传小项目

    本项目是一个使用Java实现的带有进度条和取消功能的文件上传示例,它利用了Apache的Commons FileUpload库来处理文件上传的过程。Commons FileUpload是Java的一个开源组件,专门用于处理HTTP请求中的多部分/表单数据...

    java实现图片上传并显示

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

    Java大文件上传(1GB,图片,视频,Flash文件,音频文件)

    本篇文章将详细探讨Java实现大文件上传的原理、方法及优化策略。 首先,我们需要理解HTTP协议在上传大文件时面临的挑战。标准的HTTP POST请求会一次性发送整个文件内容,如果文件过大,可能会导致网络拥塞,超时...

    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 ...

    uniapp前端单文件上传JAVA后台接收实现(亲测)

    uniapp前端单文件上传JAVA后台接收实现(亲测),看了些文档,亲测了一天,后面还有多页面上传文档代码上传哦

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

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

    java图形化实现文件上传

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

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

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

    Java实现文件的上传下载

    该代码是一个使用Java开发的上传下载的一个demo,一共有两种方法,第一种是使用最基础的IO流进行文件的上传,可以了解一下原理。第二种是使用apache的commons-IO包进行文件的上传,其实只要了解了这两种上传文件的...

    uniapp多文件前端上传JAVA后台接收实现(亲测).txt

    uniapp前端单文件上传JAVA后台接收实现(亲测),还有单文件上传亲测哦,可以都看看,研究了一天,终于搞定,支持原创

Global site tag (gtag.js) - Google Analytics