本文共 1236 字,大约阅读时间需要 4 分钟。
1、前台页面
表单实现文件上传: 1)、表单的提交类型为method=“POST” 2)、表单类型设置为enctype=“multipart/form-data” 3)、表单元素设置name属性值2、后台代码
首先需要导入第三方jar包: 下 载commons-io 和 commons-fileupload 两个 jar 的资源。解压并导入到项目中。 commons-fileupload.jar 是文件上传的核心包 commons-io.jar 是 filefupload 的依赖包,同时又是一个工具包。实现步骤:
DiskFileItemFactory – 设置磁盘空间,保存临时文件。只是一个工具类 ServletFileUpload – 文件上传的核心类,此类接收request,并解析 ServletFileUpload.parseRequest(request); – List解析 request 1、创建一个DiskFileItemFactory工厂类,并定制临时文件和大小 2、创建ServletFileUpload核心类,接收临时文件,做请求的转换 3、通过ServletFileUpload类转换原始请求,的到FileItem集合 4、遍历集合中的各个元素处理 5、判断每个元素是否是普通表单项,如果是则按照普通表单项处理 6、如果不是普通表单项,则是文件,通过处理的方式进行处理(上传)使用注解@MultipartConfig将一个Servlet标识为支持文件上传。
Servlet3.0将multipart/form-data的POST请求封装成Part,通过Part对上传的文件进行操作。 1、普通表单项取值 request.getParameter(name) 2、文件域 request.getPart(name) 注:如果前台表单是文件上传表单,一定要加上注解@MultipartConfig// 接收参数 String uname = request.getParameter("uname"); System.out.println(uname); // ============文件上传========== // 得到part对象 getPart(name):name表示的是表单元素(文件域)的name属性值 Part part = request.getPart("myfile"); // 得到上传文件的名称 String fileName = part.getSubmittedFileName(); // 得到文件想要存放的路径 String path = request.getServletContext().getRealPath("/"); // 上传文件 part.write(path + fileName);
转载地址:http://hfgpb.baihongyu.com/