Java中,当表单含有文件上传时,提交数据的如何读取

时间:2025-03-20 09:54:33
  • // 判断enctype属性是否为multipart/form-data  
  • boolean isMultipart = (request);  
  •   
  • // Create a factory for disk-based file items  
  • DiskFileItemFactory factory = new DiskFileItemFactory();  
  •   
  • // 当上传文件太大时,因为虚拟机能使用的内存是有限的,所以此时要通过临时文件来实现上传文件的保存  
  • // 此方法是设置是否使用临时文件的临界值(单位:字节)  
  • (yourMaxMemorySize);  
  •   
  • // 与上一个结合使用,设置临时文件的路径(绝对路径)  
  • (yourTempDirectory);  
  •   
  • // Create a new file upload handler  
  • ServletFileUpload upload = new ServletFileUpload(factory);  
  •   
  • // 设置上传内容的大小限制(单位:字节)  
  • (yourMaxRequestSize);  
  •   
  • // Parse the request  
  • List<?> items = (request);  
  •   
  • Iterator iter = ();  
  • while (()) {  
  •     FileItem item = (FileItem) ();  
  •   
  •     if (()) {  
  •         //如果是普通表单字段  
  •         String name = ();  
  •             String value = ();  
  •             ...  
  •     } else {  
  •         //如果是文件字段  
  •         String fieldName = ();  
  •             String fileName = ();  
  •             String contentType = ();  
  •             boolean isInMemory = ();  
  •             long sizeInBytes = ();  
  •             ...  
  •               
  •             // Process a file upload  
  •                 if (writeToFile) {  
  •                     File uploadedFile = new File(...);  
  •                     (uploadedFile);  
  •                 } else {  
  •                     InputStream uploadedStream = ();  
  •                     ...  
  •                     ();  
  •                 }  
  •     }  
  • }