Heim >Java >javaLernprogramm >Codebeispiel für die Verwendung von FileUpload zum Abschließen des Uploads in Java

Codebeispiel für die Verwendung von FileUpload zum Abschließen des Uploads in Java

黄舟
黄舟Original
2017-09-25 10:36:152059Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zur Upload-Instanz von FileUpload in Java Advanced vor. Ich hoffe, dass dieser Artikel allen Freunden in Not helfen kann.

FileUpload in Java Advanced Beispiel für abgeschlossen Upload

FileUpload ist ein Unterprojekt unter Apache Commons, das zur Implementierung der Datei-Upload-Funktion unter Java-Projekten verwendet wird. Zu den gängigen Datei-Uploads gehören SmartUpload, Servlet3.0 und Struts2.

Hier verwende ich commons-fileupload-1.2.1. Der Parsing-Prozess ist in den Kommentaren im Code beschrieben


Die Komponente FileUpload verwendet die FileItemFactory-Factory, um ein neues Dateielement zu erstellen. Dies verleiht der Komponente FileUpload viel Flexibilität. Diese Fabrik hat die endgültige Kontrolle darüber, wie Projekte erstellt werden. Temporäre Daten für hochgeladene Projektdateien während der Werksausführung können im Speicher oder auf der Festplatte gespeichert werden. Dies hängt von der Größe des hochgeladenen Elements ab (z. B. Datenbytes). Dieses Verhalten kann jedoch in Ihrer Anwendung entsprechend angepasst werden.
//创建磁盘文件项工厂 
      DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); 
      //设置缓冲区的大小,如果文件的大小超过了缓冲区的大小,就会产生临时文件 
      diskFileItemFactory.setSizeThreshold(1024*1024*3); 
      //获得核心解析类 
      ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); 
      //解决中文文件名上传乱码 
      fileUpload.setHeaderEncoding("UTF-8"); 
      //解析request,返回list集合 
      List<FileItem> list = fileUpload.parseRequest(request); 
      //获得每个部分,将遍历的值存入到一个map集合中 
      Map<String, String> map=new HashMap<>(); 
      //设置上传文件的文件名 
      String fileName=null; 
      for (FileItem fileItem : list) { 
        //判断普通项和文件上传项 
        if (fileItem.isFormField()) { 
          //普通项 
          String name=fileItem.getFieldName(); 
          String value=fileItem.getString("UTF-8"); 
          map.put(name, value); 
        }else { 
          //文件上传项 
          //获得文件名 
          fileName=fileItem.getName(); 
          //获得文件的输入流 
          InputStream is=fileItem.getInputStream(); 
          //获得文件上传的路径 
          String path=this.getServletContext().getRealPath("/products/1"); 
          OutputStream os=new FileOutputStream(path+"/"+fileName); 
          int len=0; 
          byte[] b=new byte[1024]; 
           
          while ((len=is.read(b))!=-1) { 
            os.write(b, 0, len); 
          } 
          is.close(); 
          os.close(); 
        }

Das obige ist der detaillierte Inhalt vonCodebeispiel für die Verwendung von FileUpload zum Abschließen des Uploads in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn