이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!