2009-06-12 88 views
0

我正嘗試使用基於(基於閃存)的YUI Uploader與Java(基於Spring)的後端。帶Java後端的YUI上傳器

在Java Servlet世界中上傳文件的典型方式是在HTML表單上設置ENCTYPE='multipart/form-data',用於向用戶請求文件。使用正確的服務器端API(即Commons FileUpload),可以在服務器上獲取文件。

但是我受到如何用YUI上傳器來實現這一點的阻礙。我能夠訪問Java控制器,並且我甚至能夠提取自定義帖子值。但我不知道如何從請求中提取二進制文件數據。

有沒有人有過使用Java後端的YUI上傳器的運氣?

回答

2

要回答我的問題,並作出長話短說,這個代碼片段的伎倆:

@Controller 
@RequestMapping("/FileUploadController") 
public class FileUploadController { 

    @RequestMapping(method = RequestMethod.POST) 
    protected ModelAndView onSubmit(HttpServletRequest request) throws Exception{ 
     FileItemFactory factory = new DiskFileItemFactory(); 
     ServletFileUpload upload = new ServletFileUpload(factory); 
     List<FileItem> /* FileItem */ items = upload.parseRequest(request); 

     for (FileItem fileItem : items) { 
      if (fileItem.isFormField()) { 
//    processFormField(fileItem); 
      } else { 
       File uploadedFile = new File("/tmp/junk/" + fileItem.getName()); 
       fileItem.write(uploadedFile); 
      } 
     } 
     return new ModelAndView("index"); 
    } 
} 

這個例子使用Spring,但你應該能夠做到完全一樣長因爲你有HttpServletRequest對象。