private String fileTmpPath = "";
private int fileSize = 100;
private static UpLoadFile loadFile = new UpLoadFile();
public UpLoadFile() {
}
public UpLoadFile getInstance() {
return loadFile;
}
/**
* 缓存上传二进制文件
* @param request 请求url
* @return ServletFileUpload 对象
*/
public ServletFileUpload configUploadTerm(HttpServletRequest request) {
FileCleaningTracker fileCleaningTracker = FileCleanerCleanup
.getFileCleaningTracker(request.getSession()
.getServletContext());
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
// 设置最多只允许在内存中存储的数据,单位:字节
diskFileItemFactory.setSizeThreshold(1024 * fileSize);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
diskFileItemFactory.setRepository(new File(fileTmpPath));
diskFileItemFactory.setFileCleaningTracker(fileCleaningTracker);
ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
upload.setHeaderEncoding("utf-8");
//上传文件的最大值
upload.setSizeMax(1024 * fileSize);
return upload;
}
public int upLoadFiles(HttpServletRequest request){
ServletFileUpload fileUpload = configUploadTerm(request);
try {
List<?> list = fileUpload.parseRequest(request);
for(int i = 0 ; i < list.size() ; i ++){
FileItem fileItem = (FileItem) list.get(i);
if(!fileItem.isFormField()){
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(fileItem.getInputStream(),"gbk"));
while(null != reader.readLine()){
System.out.println("行记录"+reader.readLine());
}
}catch (Exception e) {
}
}else{
String s = new String(fileItem.getString().getBytes("iso-8859-1"),"utf-8");
System.out.println("普通文本" + fileItem.getFieldName() + "\t" + s);
}
}
return 1;
} catch (FileUploadException e) {
e.printStackTrace();
return 0;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return 0;
}
}