首页 > 代码库 > 使用ServletFileUpload实现上传
使用ServletFileUpload实现上传
1.首先我们应该为上传的文件建一个存放的位置,一般位置分为暂时和真是目录,那我们就须要获取这俩个目录的绝对路径,在servlet中我们能够这样做
ServletContext application = this.getServletContext(); String tempDirectory = application.getRealPath(Constant.TEMP_DIRECTORY) + "/"; String realDirectory = application.getRealPath(Constant.REAL_DIRECTORY) + "/";
然后建立文件工厂即仓库一个參数表示存放多大后flush,
FileItemFactory factory = new DiskFileItemFactory(Constant.SIZE_THRESHOLD,new File(tempDirectory)); ServletFileUpload upload = new ServletFileUpload(factory);2.对上传的文件进行设定
upload.setSizeMax(500*1024*1024);//设置该次上传最大值为500M3,.解析请求正文,获取上传文件,不抛出异常则写入真是路径
List<FileItem> list = upload.parseRequest(request); Iterator<FileItem> iter = list.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); //item.isFormField()用来推断当前对象是否是file表单域的数据 假设返回值是true说明不是 就是普通表单域 if(item.isFormField()){ System.out.println( "普通表单域" +item.getFieldName()); System.out.println(item.getString("utf-8")); }else{ //System.out.println("file表单域" + item.getFieldName()); /* * 仅仅有file表单域才将该对象中的内容写到真实目录中 */ String lastpath = item.getName();//获取上传文件的名称 lastpath = lastpath.substring(lastpath.lastIndexOf(".")); String filename = UUID.randomUUID().toString().replace("-", "") + lastpath; item.write(new File(realDirectory+filename));
复制搜索
复制搜索
复制搜索
复制搜索
复制搜索
复制搜索
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。