2009-06-12 11 views
0

J'essaie d'utiliser le (basé sur le flash) YUI Uploader avec un back-end Java (à base de printemps). La manière typique de télécharger des fichiers dans le monde Java Servlet consiste à définir le ENCTYPE='multipart/form-data' sur le formulaire HTML demandant le fichier à l'utilisateur. Avec les bonnes API côté serveur (c'est-à-dire Commons FileUpload), il est possible d'obtenir le fichier sur le serveur.YUI Uploader avec Java back-end

Mais je suis bloqué par la façon d'y parvenir avec le YUI Uploader. Je suis capable d'atteindre le contrôleur Java, et je suis même capable d'extraire les valeurs de messages personnalisés. Mais je n'ai aucune idée de comment extraire les données du fichier binaire hors de la demande.

Est-ce que quelqu'un a eu de la chance avec un uploader YUI avec un backend Java?

Répondre

2

Pour répondre à ma propre question, et de faire une longue histoire courte, ce bout de code a fait l'affaire:

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

Cet exemple utilise printemps, mais vous devriez être en mesure de faire exactement la même chose que de temps comme vous avez l'objet HttpServletRequest.