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 POI来操作Word模板文件,生成表单以及进行修改,特别是处理含有下拉框等交互元素的情况。 首先,让我们了解Java POI的基本用法。要操作Word文档,我们需要导入`org....
为了提高代码的灵活性和可扩展性,推荐使用集合(如List)来封装多个上传文件。这样可以在Action中统一处理所有文件,而不是为每个文件域指定单独的属性。 **2.2 文件过滤** 实现文件过滤通常是为了限制用户上传的...
其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...
123.利用Stream上传文件 124.计算下载一个文件需要多长时间 第8章 表单与页面显示 127.如何处理单个网页中多个表单的提交 128.如何防止表单被多次提交 129.如何防止表单在网站外被提交 130.如何解决表单发送数据...
生成一个名为test.php3的文件,含有以下内容: (); ?> 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此...
- `$_FILES`:用于通过HTTP文件上传处理上传的文件。 - `$_SERVER`:包含有关服务器和执行环境的信息。 - `$_SESSION`:用于保存会话数据。 - `$_COOKIE`:用于访问由客户端发送的cookie。 ### HTTP请求方法的区别 ...