实现文件上传的方式
1、进入http://公地。阿帕奇。org/proper/commons-文件上传/使用。超文本标记语言
2、点击用户指南
3、对着用户指南一步步复制粘贴,并把代码撸成自己想要的样子
补充:记得要将commons-io-2.4.jar和commons-fileupload-1.2.2.jar这两个包放到编译器里面
现成的代码
JSP前端页面
% -由IntelliJ IDEA创建。用户:管理员日期: 2019/10/8时间: 16:14要更改此模板,请使用文件|设置|文件模板-% % @ page ContentType=' text/html;charset=UTF-8 "语言="Java"% html标题作业三第一遍/标题/床头柜文件上传注意事项:brol li提交方式必须是post/Li lientype="多部分/表单数据"是以字节数据的形式提交表单,否则默认是额定电压形式,只会提交文件名/li li如果以默认的应用程序/x-www-form-urlencode的方式提交,上传的就不是文件本身/Li/ol %-应用程序/x-www-form-URL编码以键值对的方式上传- %% -多部分/表单-数据以二进制的方式上传-% form action='/work/UploadServlet '方法=' post ' enctype=' multipart/form-data '输入类型=' text '名称=' data1 '值=' data1值' HR输入类型=' text '名称=' data2 '值=' data2值' HR输入类型='file '名称=' dataFile ' hr输入类型='submit '值='上传该表单HR/表单/正文/htmlServlet后台处理页面
package com.bd25import org。阿帕奇。公地。文件上传。FileItem导入组织。阿帕奇。公地。文件上传。fileitemfactory导入组织。阿帕奇。公地。文件上传。文件上传异常;导入组织。阿帕奇。公地。文件上传。磁盘。disk fileitemfactory导入组织。阿帕奇。公地。文件上传。servlet。servlet文件上传;导入javax。servlet。servletexception导入javax。servlet。servletinputstream导入javax。servlet。注释。webservlet导入javax。servlet。http。HttpServlet导入javax。servlet。http。HttpServletrequest导入javax。servlet。http。HttpServletResponse导入Java。io。文件;导入Java。io。ioexception导入Java。io。unsupportdencodinegexception导入Java。乌提尔。枚举;导入Java。乌提尔。迭代器;导入Java。乌提尔。列表;@WebServlet(名称='UploadServlet ',urlPatterns='/UploadServlet ')公共类UploadServlet扩展了HttpServlet {受保护的void doPost(HttpServletrequest请求,HttpServletResponse响应)引发ServletException,IOException { //处理中文乱码-已经测试这个要不要无所谓请求。setcharacter encoding(' UTF-8 ');//判断是不是传入的一个二进制的流boolean为multi part=servlet文件上传。是多部分内容(请求);//创建一个简单工厂实例文件工厂工厂=new DiskFileItemFactory();//创建一个新的文件上传处理程序servlet文件上传上传=新servlet文件上传(工厂);//解析请求尝试{ ListFileItem文件项目=上传。parserequest(请求);//处理上传的项目迭代器ITER=文件项。迭代器();而(ITER。HasNeXt()){ file item item=(file item)ITER。NeXt();if (item.isFormField()){ //普通域processFormField(项);}else{ //文件域此处注意processUploadFile()方法的参数里面传入请求的目的是让下面写文件的时候获取根目录用的processUploadFile(项目,请求);} } } catch(文件uploadexception e){ e . printstacktrace();} ServletInputStream inputStream=请求。getinputstream();字节[]bs=新字节[1024];int total=-1;while((total=InputStream。阅读(bs))!=-1){系统.输出.打印(新字符串(bs,0,总计));} } /** * 文件域* @ param项* @ param请求*/private void processUploadFile(文件项项,HttpServletRequest请求){ //获取文件相关信息字符串fileName=if(!项目。isformfield()){字符串字段名=item。getfield name();fileName=项目。getname();string ContentType=item。GetContentType();布尔IsInmemory=item。is INmemory();long SizeInBytes=item。getSize();System.out.println('文件名:" fileName "文件属性:"字段名称"文件大小:"大小字节"文件类型:' ContentType);} //以下是转存操作,找到储存文件的根路径字符串文件rootpath=请求。getservletcontext().getRealPath('/WEB-INF/upload ');文件目录=新文件(文件根路径);if(!迪尔。exists()){ dir。mkdirs();} //写文件文件文件=新文件(文件根路径"/"文件名);请尝试{ item.write(文件);} catch(异常e){ e . print stack trace();} } /** * 普通域* @ param item */private void processFormField(文件项项){字符串键=项。getfield name();字符串值=null尝试{ //处理中文乱码值=项目。getstring(' UTF-8 ');} catch(unsupportdencodinegexception e){ e . printstacktrace();} System.out.println(键'-'值);}受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException { } @Override受保护的void服务(HttpServletRequest请求,HttpServletResponse resp)引发ServletException,IOException { super.service(req,resp);System.out.println('刷新.');} @覆盖公共void init()引发ServletException { super。init();System.out.println('初始化.');}}运行结果
//描述:路径出现的位置就是网页发布的路径
//描述:路径出现的位置就是网页发布的路径
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。