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多文件上传实现,上传界面采用flash,同时显示上传进度条
在本篇文章中小编给大家分享了关于Java创建和填充PDF表单域方法和步骤,有需要的朋友们学习下。
java实现上传文件到远程服务器(spring mvc)
java使用swf+ext实现文件批量上传,直接导入Eclipse就可以使用。
这个类可以实现,java语言下通过对上传文件进行MD5加密,然后将加密值与原来上传的文件加密值进行对比,防止上传重复文件。
java实现多文件异步上传
用JAVA实现的文件上传,控制台输入,保存到数据库
使用java处理文件上传的底层实现流程以及java模拟post协议实现文件上传
JAVA表单上传多个文件 java web form表单上传多个文件.zip
Java文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传jar包加实现步骤.zipJava文件上传...
java实现的大文件上传,支持断点续传 支持分片分片上传 采用springboot框架是实现
在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字
java实现大文件上传并有进度条及其代码解析
简单的文件上传,结合struts实现文件上传的一个demo,适合初学者。
java实现的ftp文件上传
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
java实现后端数据导出成csv文件并上传到指定的sftp服务器,主要是使用univocity-parsers来做的csv文件导出以及采用jsch来完成csv文件的sftp上传。
java实现文件上传到fpt,里面一些很简单的操作适合初学者。
java上传文件 实时获取上传进度 上传RAR,ZIP 并指定解压路劲 上传之后会按照路劲进行解压
使用Java远程上传压缩包到服务器,或者在服务器上拉去压缩包或者文件,在服务器上创建目录。