1、什么是文件上传
 文件上传就是将你想要的文件写入到某个地方(本地计算机/服务器)
HTML表单提交
<form enctype="multipart/form-data" method="post" action="upload">
    文件:<input type="file" name="fileUpload"/>
    <input type="submit" value="上传"/>
</form>

这里method必须要以post提交
action指向处理上传的Servlet
上传文件时enctype必须使用multipart/form-data

创建Servlet【upload】
// 创建磁盘文件项工厂:
          DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
          // 创建核心解析类:
          ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
          // 解析request请求:
          try {
                List<FileItem> list = servletFileUpload.parseRequest(request);
                // 遍历集合获得到每个部分:
                for (FileItem fileItem : list) {
                      // 判断是否是文件上传项:
                      if(fileItem.isFormField()){
                           // 普通项
                           String name = fileItem.getFieldName();
                           String value = fileItem.getString();
                           System.out.println(name+"    "+value);
                      }else{
                           // 文件上传项
                           // 获得文件上传的路径:
                           String path = this.getServletContext().getRealPath("/upload");
                           // 获得文件名称:
                           String fileName = fileItem.getName();
                           // 获得文件的内容:
                           InputStream is = fileItem.getInputStream();
                           // 创建一个输出流:
                           OutputStream os = new FileOutputStream(path+"\\"+fileName);
                           // 两个流完成对接:
                           byte[] b = new byte[1024];
                           int len = 0;
                           while((len = is.read(b))!=-1){
                                 os.write(b, 0, len);
                           }
                           is.close();
                           os.close();
                      }
                }
          } catch (FileUploadException e) {
                e.printStackTrace();
          }
最后修改:2023 年 01 月 31 日
如果觉得我的文章对你有用,请随意赞赏