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编程中,创建和填充PDF表单域是一项常见的任务,尤其在数据处理和报告生成领域。本篇文章将深入探讨如何使用Java实现这一功能,并提供一个详细的步骤和示例代码。 首先,表单域是PDF文档中用于用户交互的重要...
本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。具体实现过程中,我们会采用HTTP协议中的`POST`方法,并通过`multipart/form-data`编码格式来传输数据。 #### 关键概念和技术...
这个类可以实现,java语言下通过对上传文件进行MD5加密,然后将加密值与原来上传的文件加密值进行对比,防止上传重复文件。
Java 实现上传文件到 OSS(阿里云)的功能示例 Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的...
本文将详细介绍如何使用Java实现大文件的上传并展示进度条,同时解析相关的代码实现。 1. **大文件分块上传** 大文件上传的关键在于避免一次性加载整个文件到内存,因为这可能导致内存溢出。Java中,我们可以使用`...
在本文中,我们将深入探讨如何使用HttpURLConnection实现文件上传,同时也会涉及普通参数的传递。 首先,我们需要理解HTTP请求的基本结构。HTTP请求通常由以下几个部分组成:请求行、请求头、空行和请求体。在文件...
本项目"java实现大文件上传分片上传断点续传.zip"提供了一个基于SpringBoot框架的解决方案,它实现了大文件的分片上传和断点续传功能。以下是关于这个项目的关键知识点的详细说明: 1. **大文件上传**: - 大文件...
在Java Web开发中,处理包含文件上传的表单提交是一项常见的任务。当用户通过HTML表单上传文件时,表单的`enctype`属性通常设置为`multipart/form-data`,以便能够传输二进制数据,如图片、文档等。本文将深入探讨...
Java文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传...
在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字
以下是对标题"java实现文件上传到服务器"和描述的详细解释: 1. **文件上传到服务器**: 文件上传通常使用HTTP协议的POST请求完成。在Java Web环境中,我们可以通过Servlet API来处理这样的请求。用户通过HTML表单...
本文将详细介绍一个基于Java实现的多线程文件上传系统,并结合队列管理技术来优化后台处理流程。该系统通过创建多个线程来并行处理客户端的文件上传请求,同时利用队列结构来协调任务的调度与执行。 #### 关键技术...
在Java开发中,大文件上传是一项常见的需求,尤其是在云存储、文件分享等场景下。由于网络环境的不稳定性,单纯的一次性上传大文件可能会因为网络中断而导致上传失败,这时就需要断点续传功能来保证文件传输的可靠性...
JSch - Java实现的SFTP(文件上传详解篇)
本项目是一个使用Java实现的带有进度条和取消功能的文件上传示例,它利用了Apache的Commons FileUpload库来处理文件上传的过程。Commons FileUpload是Java的一个开源组件,专门用于处理HTTP请求中的多部分/表单数据...
总结起来,Java实现图片上传涉及的关键技术有:文件操作(File类)、HTTP请求(Multipart编码)、服务器端文件处理(如Apache Commons FileUpload)、存储策略(文件系统或云存储)以及安全性与性能优化(如文件大小...
总结来说,Java实现表单提交(支持多文件同时上传)主要涉及以下步骤: 1. 创建HttpClient实例。 2. 构建HttpPost对象,并设置目标URL。 3. 使用MultipartEntityBuilder添加普通表单字段和文件字段。 4. 将构建好的...
### Java多方式实现文件上传——深入探讨Struts2框架下的文件上传机制 #### 实现原理与框架背景 在探讨如何在Struts2中实现文件上传之前,我们首先需要理解其背后的实现原理。Struts2框架利用了Apache Commons ...
为了克服这一问题,开发人员通常会利用Ajax技术来实现异步文件下载,使得用户在下载文件的同时仍能保持页面的正常操作。本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax*...
在Java编程环境中,处理PDF(Portable Document Format)文件是一项常见的任务,这通常涉及到文件的上传、下载、在线预览、删除以及修改等操作。以下是对这些功能的详细说明: 1. **PDF上传**: PDF文件的上传主要...