HttpServlet利用commons-fileupload 实现二进制上传任意格式文件

HttpServlet利用commons-fileupload 上传二进制文件

主要利用缓冲流上传

@Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
       try {
    
    
           DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
           ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);
           List<FileItem> list =servletFileUpload.parseRequest(req);
           for (FileItem fileItem : list) {
    
    
               if (fileItem.isFormField()) {
    
    
                   String name = fileItem.getFieldName();
                   String value = fileItem.getString("UTF-8");
                   System.out.println(name + ":" + value);
               } else {
    
    
                   String fileName= fileItem.getName();
                   long size=fileItem.getSize();
                   System.out.println(fileName+":"+size+"Byte");
                   InputStream inputStream=fileItem.getInputStream();
                   BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
                   String path=req.getServletContext().getRealPath(fileName);
                   OutputStream outputStream=new FileOutputStream(path);
                   BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(outputStream);
                   byte[] data=new byte[1024];
                   int length;
                   while ((length=bufferedInputStream.read(data))!=-1) {
    
    
                       bufferedOutputStream.write(data,0,length);
                   }
                   bufferedOutputStream.close();
                   outputStream.close();
                   bufferedInputStream.close();
                   inputStream.close();
                   System.out.println("上传成功");
               }
           }
       } catch (FileUploadException e) {
    
    
           e.printStackTrace();
       }
   }

猜你喜欢

转载自blog.csdn.net/yimzuenmuanggg/article/details/113352287