去评论
推扬网

雷立军:在JSP中,创建ServletFileUpload对象的方法是

admin
2020/08/12 17:07:56

路军的回答:

C 原因没啥好讲的,因为Apache的Commons FileUpload组件就是这么设计的,ServletFileUpload可以实例化,但构造函数中需要传递一个FileItemFactory接口类型的对象(所以A, D不对)。 但是由于FileItemFactory是接口,不能用new实例化(所以B不对),需要用它的实现类DiskFileItemFactory进行实例化。

黄怡的回答:

C 原因没啥好讲的,因为Apache的Commons FileUpload组件就是这么设计的,ServletFileUpload可以实例化,但构造函数中需要传递一个FileItemFactory接口类型的对象(所以A, D不对)。 但是由于FileItemFactory是接口,不能用new实例化(所以B不对),需要用它的实现类DiskFileItemFactory进行实例化。

李福顺的回答:

这个需要在jsp页面中引入import org.apache.commons.fileupload.*; 然后直接用里面的ServletFileUpload构造方法来实例化这个对象。 比如可以这么写: ServletFileUpload upload = new ServletFileUpload(diskFactory); try{ DiskFileItemFactory diskFactory = new DiskFileItemFactory(); // threshold 极限、临界值,即硬盘缓存 1M diskFactory.setSizeThreshold(4 * 1024); // repository 贮藏室,即临时文件目录 diskFactory.setRepository(new File(tempPath)); ServletFileUpload upload = new ServletFileUpload(diskFactory); // 设置允许上传的最大文件大小 4M upload.setSizeMax(4 * 1024 * 1024); // 解析HTTP请求消息头 List fileItems = upload.parseRequest(req); Iterator iter = fileItems.iterator(); while(iter.hasNext()) { FileItem item = (FileItem)iter.next(); if(item.isFormField()) { System.out.println("处理表单内容 ..."); processFormField(item, pw); }else{ System.out.println("处理上传的文件 ..."); processUploadFile(item, pw); } }// end while() pw.close(); }catch(Exception e){ System.out.println("使用 fileupload 包时发生异常 ..."); e.printStackTrace(); }// end try ... catch ...

张文跃的回答:

boolean?isMultipart?=?ServletFileUpload.isMultipartContent(request);??//判断提交的表单是否是文件上传表单 if(isMultipart){ FileItemFactory?fileItemFactory?=?new?DiskFileItemFactory();??//获得磁盘文件条目工厂? ServletFileUpload?upload?=?new?ServletFileUpload(fileItemFactory);??//高水平的API文件上传处理?? //具体的获取上传信息,以及保存文件 try?{ FileItem?item?=??(FileItem)?upload.parseRequest(request).get(0);??//只有一个上传文件,取第一个即可 // String?path1?=?request.getRealPath("/data/userfile/image");??//此方法已经过时 // String?path1?=?session.getServletContext().getRealPath("/data/userfile/image");??//也可以这样写 String?path1?=?this.getServletContext().getRealPath("/data/userfile/image");??//文件保存路径 if(!item.isFormField()){ String?value?=?item.getName();??//获取上传文件的文件名 int?start?=?value.lastIndexOf("\\"); String?fileName?=?value.substring(start+1);??//文件名 String?filetype?=?"jpg"; //过滤文件格式 if?(fileName.length()?>?0)?{??? ????????????int?start1?=?fileName.lastIndexOf('.');??? ????????????if?((start1?>-1)?&&?(start1?