上传:(W11 upLoad.jsp和UploadServlet)

//存放文件上传的路径

private String dirPath = "D:/upload";


//创建一个上传文件的方法,用apache提供的上传组件实现(2个相关联的包)public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws Exception{//创建文件上传工厂对象FileItemFactory factory = new DiskFileItemFactory();//创建文件上传的核心类ServletFileUpload upload = new ServletFileUpload(factory);//设置单个文件允许的最大大小upload.setFileSizeMax(10*1024*1024);//10M//设置表单中所有文件的最大容量,设为30Mupload.setSizeMax(30*1024*1024);//30M//设置文件名的编码方式,可以不用设置//相当于request.setCharacterEncoding("utf8");upload.setHeaderEncoding("utf8");//判断是否文件上传表单if (upload.isMultipartContent(request)) {//把请求数据转换为FileItem对象,将所有FileItem对象放入集合中Listlist = upload.parseRequest(request);

for (FileItem item : list) {

//判断是否是普通文本数据 form的text等

if (item.isFormField()) {

//得到表单元素的名称和值(key、value)

System.out.println(item.getFieldName());//key

item.getString();//value

//得到表参数中对应的数据

System.out.println(item.getString("utf8"));

}else {//说明是文件

String name = item.getName();

String id = UUID.randomUUID().toString().replace("-", "");//去掉uuid的“-”

if (name==null||name.isEmpty()) {

continue;

}

//生成新的文件名

name = id+"-"+name;

//如果上传目录不存在,创建

File f = new File(dirPath);

if (!f.exists()) {

f.mkdirs();

}

//创建目标文件(两者组合一个路径)

File file = new File(dirPath,name);

//上传文件

item.write(file);

//删除完上传过程中产生的临时文件

item.delete();

}

}

}

}



上传:(W11 upLoad.jsp和UploadServlet)_第1张图片


上传:(W11 upLoad.jsp和UploadServlet)_第2张图片


注:******

上传:(W11 upLoad.jsp和UploadServlet)_第3张图片

你可能感兴趣的:(上传:(W11 upLoad.jsp和UploadServlet))