FileUpload组件-创新互联
pack items = new ArrayList();
try {
items = sfu.parseRequest(request);
}catch(FileUploadBase.FileSizeLimitExceededException e) {
response.getWriter().write("单个文件不能超过3M");
}
catch(FileUploadBase.SizeLimitExceededException e) {
response.getWriter().write("总文件不能超过5M");
}catch (FileUploadException e) {
e.printStackTrace();
throw new RuntimeException("解析请求失败");
}
//遍历:
for(FileItem item:items){
//处理普通字段
if(item.isFormField()){
processFormField(item);
}else{
//处理上传字段
processUploadField(item);
}
}
}
protected void processUploadField(FileItem item) {
try {
// InputStream in = item.getInputStream();
//找一个存放文件的位置;存放的文件名
String fileName = item.getName();//上传的文件的文件名 C:UserswzhtingDesktopa.txt a.txt(浏览器不同)
if(fileName!=null&&!fileName.equals("")){
//限定上传文件的类型
if(!item.getContentType().startsWith("image")){
return;
}
fileName = FilenameUtils.getName(fileName);
fileName = IdGenertor.genGUID()+"_"+fileName;
//存放路径
String realPath = getServletContext().getRealPath("/WEB-INF/files");
//生成一个子目录
String childDirectory = genChildDirectory(realPath,fileName);
File storeDirectory = new File(realPath+File.separator+childDirectory);
if(!storeDirectory.exists()){
storeDirectory.mkdirs();
}
// OutputStream out = new FileOutputStream(new File(storeDirectory, fileName));
//
// int len = -1;
// byte b[] = new byte[1024];
// while((len=in.read(b))!=-1){
// out.write(b, 0, len);
// }
// in.close();
// out.close();
//
// item.delete();//清除临时文件
item.write(new File(storeDirectory, fileName));
}
} catch (Exception e) {
e.printStackTrace();
}
}
private String genChildDirectory(String realPath, String fileName) {
int hashCode = fileName.hashCode();
int dir1 = hashCode&0xf;
int dir2 = (hashCode&0xf0)>>4;
String str = dir1+File.separator+dir2;
File file = new File(realPath,str);
if(!file.exists()){
file.mkdirs();
}
return str;
}
//按照日期生成子目录
private String genChildDirectory(String realPath) {
Date now = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String str = df.format(now);
File file = new File(realPath,str);
if(!file.exists()){
file.mkdirs();
}
return str;
}
protected void processFormField(FileItem item) {
//打印到控制台
String fieldName = item.getFieldName();
String fieldValue = "";
try {
fieldValue = item.getString("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(fieldName+"="+fieldValue);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
} 做做笔记,传播知识,我是个勤劳的搬运工
1224144402@qq.com
网站标题:FileUpload组件-创新互联
当前网址:http://scyanting.com/article/hjoes.html
网站标题:FileUpload组件-创新互联
当前网址:http://scyanting.com/article/hjoes.html