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;
}
}
分享到:
相关推荐
在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...
利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...
本文将详细介绍如何使用Java实现大文件的上传并展示进度条,同时解析相关的代码实现。 1. **大文件分块上传** 大文件上传的关键在于避免一次性加载整个文件到内存,因为这可能导致内存溢出。Java中,我们可以使用`...
在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...
在本文中,我们将深入探讨如何使用HttpURLConnection实现文件上传,同时也会涉及普通参数的传递。 首先,我们需要理解HTTP请求的基本结构。HTTP请求通常由以下几个部分组成:请求行、请求头、空行和请求体。在文件...
在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字
本篇将详细讲解如何使用`plupload`与Java实现大文件上传。 `plupload`是一个强大的多浏览器文件上传插件,支持多种浏览器和多种上传方式,包括传统的表单提交、IFrame、Flash、Silverlight以及HTML5。它具有断点续...
在Java编程环境中,上传并处理ZIP和RAR压缩文件是一项常见的任务,特别是在文件传输、数据存储以及备份场景下。本文将详细讲解如何实现这个功能,包括文件上传、实时进度跟踪、指定解压路径以及解压过程。 首先,让...
Apache Commons FileUpload是Java社区广泛使用的文件上传组件,它允许开发者轻松地处理HTTP请求中的多部分表单数据,包括文件上传。然而,对于云存储的集成,我们通常需要结合云服务商提供的SDK,比如腾讯云的Java ...
在Java开发中,大文件上传是一项常见的需求,尤其是在云存储、文件分享等场景下。由于网络环境的不稳定性,单纯的一次性上传大文件可能会因为网络中断而导致上传失败,这时就需要断点续传功能来保证文件传输的可靠性...
本文将详细介绍一个基于Java实现的多线程文件上传系统,并结合队列管理技术来优化后台处理流程。该系统通过创建多个线程来并行处理客户端的文件上传请求,同时利用队列结构来协调任务的调度与执行。 #### 关键技术...
在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...
为了克服这一问题,开发人员通常会利用Ajax技术来实现异步文件下载,使得用户在下载文件的同时仍能保持页面的正常操作。本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax*...
在Java编程环境中,处理PDF(Portable Document Format)文件是一项常见的任务,这通常涉及到文件的上传、下载、在线预览、删除以及修改等操作。以下是对这些功能的详细说明: 1. **PDF上传**: PDF文件的上传主要...
可自主限制上传文件的文件类型 showProgress "" "" "" 方法的第二个参数为限制上传文件类型 多文件时用 ‘|’ 进行分割 如: zip| rar| jif
这个"文件上传java测试程序.rar"是一个演示了如何在Java Web环境下实现文件上传的小项目,开发工具是IntelliJ IDEA(简称IDEA)。下面我们将深入探讨文件上传的核心知识点及其在Java中的实现方式。 1. **Servlet ...
在Java编程领域,文件上传和下载是常见的功能...通过阅读和运行这个TestUp文件,你可以更好地掌握Java文件上传下载的具体实现。实践中,你可能需要结合实际项目需求调整这些代码,例如添加权限控制、进度显示等功能。
8. **前端技术进步**:随着技术的发展,现代浏览器已经支持HTML5的File API,可以直接在HTML页面中实现文件上传和进度条,不再需要依赖Flash插件。然而,对于旧版浏览器的兼容性,swfupload仍是一个可行的选择。 综...
本教程将重点讲解如何在Java环境下,通过表单和Ajax两种方式实现文件及图片的上传,并提供了一个可以直接在Eclipse中导入并运行的示例项目。让我们深入探讨这两个方法。 首先,我们来看表单上传。在HTML中,我们...