fileupload控件上传文章_分享fileupload获取文件路径

fileupload控件上传文章_分享fileupload获取文件路径,第1张

fileupload控件上传文章_分享fileupload获取文件路径 一、什么是fileUpload?fileUpload是apache的commons组件提供的上传组件,它最主要的工作就是帮我们解析request.getInpustream()。

可以参考在线API文档:http://tool.oschina.net/apidocs/apidoc?api=commons-fileupload二、fileupload组件工作原理三、fileupload核心API1. DiskFileItemFactory构造器1) DiskFileItemFactory() // 使用默认配置2) DiskFileItemFactory(int sizeThreshold, File repository) sizeThreshold 内存缓冲区, 不能设置太大, 否则会导致JVM崩溃 repository 临时文件目录2. ServletFileUpload1) isMutipartContent(request) // 判断上传表单是否为multipart/form-data类型 true/false2) parseRequest(request) // 解析request, 返回值为List<FileItem>类型3) isFormField() //是否是普通文件4) setFileSizeMax(long) // 上传文件单个最大值 fileupload内部通过抛出异常的形式处理, 处理文件大小超出限制, 可以通过捕获这个异常, 提示给用户5) setSizeMax(long) // 上传文件总量最大值6) setHeaderEncoding(String) // 设置编码格式四、实现过程1.导入jar包2.编写jsp3.编写servlet//创建业务层对象NewsService newsService = new NewsService();InputStream in = null;OutputStream out = null;int id = 0;//页面传来的id值//创建解析器工厂DiskFileItemFactory factory = new DiskFileItemFactory();//获取解析器ServletFileUpload upload = new ServletFileUpload(factory);// 上传表单是否为multipart/form-data类型if(!upload.isMultipartContent(request)) {return ;}//解析request的输入流try {List<FileItem> parseRequest = upload.parseRequest(request);//迭代listfor(FileItem f:parseRequest) {if(f.isFormField()) {//普通字段id = Integer.parseInt(f.getFieldName());String value = f.getString();System.out.println(“name”+”=”+value);}else {//上传文件//获取上传文件名String name = f.getName();System.out.println(“文件名”+name);name = name.substring(name.lastIndexOf(“\”)+1);System.out.println(name);//获取输入流in = f.getInputStream();//获取上传文件路径String savePath = “D:\workspacedt91\FileUpLoadTestDemo\WebContent\images\”+name;//上传文件名若不存在, 则先创建File path = new File(savePath);if(!path.exists()) {path.getParentFile().mkdir();}//获取输出流out = new FileOutputStream(path);int len = 0;byte[] b = new byte[1024];while((len = in.read(b)) > 0) {out.write(b,0,len);}System.out.println(“上传成功”);//保存到数据库int count = newsService.saveUrl(name, id);if(count > 0 ) {System.out.println(“路径保存成功”);}else {System.out.println(“路径保存失败”);}}}} catch (FileUploadException e) {// TODO Auto-generated catch blockSystem.out.println(“上传失败”);e.printStackTrace();}finally {if(in != null) {in.close();}if(out != null) {out.close();}}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/652393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-17
下一篇 2022-04-17

发表评论

登录后才能评论

评论列表(0条)

保存