>Java >java지도 시간 >FileUpload를 사용하여 Java에서 업로드를 완료하는 코드 예

FileUpload를 사용하여 Java에서 업로드를 완료하는 코드 예

黄舟
黄舟원래의
2017-09-25 10:36:152054검색

이 글은 주로 Java Advanced의 FileUpload 예제에 대한 정보를 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Java Advanced의 FileUpload 예제입니다. Java 프로젝트에서 파일 업로드 기능을 구현하는 데 사용되는 Apache commons에서는 SmartUpload, Servlet3.0 및 Struts2가 포함됩니다.

여기서는 commons-fileupload-1.2.1을 사용하고 있습니다. 구문 분석 프로세스는 코드의 주석에 매우 자세하게 기록되어 있습니다.


//创建磁盘文件项工厂 
      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(); 
        }

FileItemFactory 팩토리 새 파일 프로젝트를 생성합니다. 이는 FileUpload 구성 요소에 많은 유연성을 제공합니다. 이 팩토리는 프로젝트 생성 방법을 최종적으로 제어합니다. 공장 실행 중 업로드된 프로젝트 파일의 임시 데이터는 메모리나 하드 디스크에 저장할 수 있습니다. 이는 업로드된 항목의 크기(예: 데이터 바이트)에 따라 다릅니다. 그러나 이 동작은 애플리케이션에서 적절하게 사용자 정의할 수 있습니다.

위 내용은 FileUpload를 사용하여 Java에서 업로드를 완료하는 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.