2009-06-12 5 views
0

Ich versuche, die (flash-basierte) YUI Uploader mit einem Java (Spring-basierten) Back-End zu verwenden.YUI Uploader mit Java Back-End

Der typische Weg zum Hochladen von Dateien in der Java-Servlet-Welt ist das Setzen des ENCTYPE='multipart/form-data' auf dem HTML-Formular, das die Datei vom Benutzer anfordert. Mit den richtigen serverseitigen APIs (d. H. Commons FileUpload) ist es möglich, die Datei auf dem Server abzurufen.

Aber ich bin davon betroffen, wie dies mit dem YUI Uploader erreicht werden kann. Ich bin in der Lage, den Java-Controller zu erreichen, und ich bin sogar in der Lage, die benutzerdefinierten Post-Werte zu extrahieren. Aber ich habe keine Ahnung, wie man die binären Dateidaten aus der Anfrage extrahiert.

Hat jemand Glück mit einem YUI-Uploader mit einem Java-Back-End gehabt?

Antwort

2

Um meine eigene Frage zu beantworten, und eine lange Geschichte kurz zu machen, tat dieser Code-Snippet den Trick:

@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"); 
    } 
} 

In diesem Beispiel wird Frühling, aber Sie sollten genau die gleichen wie lange tun können wie Sie HttpServletRequest-Objekt haben.