2010-11-18 26 views
0

J'essaye de télécharger des fichiers en utilisant Spring CommonsMultipartResolver mais le contrôleur n'est pas reconnu. Je reçois ce message d'erreur: "La ressource demandée (/WebIDE/WEB-INF/views/file/upload.jsp) n'est pas disponible."Téléchargement de fichier en utilisant Spring MVC et CommonsMultipartResolver ne fonctionne pas comme prévu

J'ai ajouté commons-fileupload-1.2.2.jar et commons-io.1.3.2.jar dans ma bibliothèque. J'ai ajouté ce qui suit dans mon contexte d'application:

<context:component-scan base-package="org.webide.mvc" /> 

<bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 

    <!-- specify maximum file size in bytes --> 
    <property name="maxUploadSize" value="100000"/> 
</bean> 

J'utilise Pojo comme mon contrôleur:

@Controller 
@RequestMapping (value = "/file") 
public class FileController { 

    @RequestMapping (value = "/upload") 
    public String uploadFile(@RequestParam("file") CommonsMultipartFile file){ 
    if (!file.isEmpty()){ 
     byte fileBytes[] = file.getBytes(); 
     return "mainView"; 
    }else{ 
     return "errorView"; 
    } 
    } 

Mon html est assez simple au moment:

<form method="post" action="file/upload" enctype="multipart/form-data"> 
      <input type="text" name="name"/> 
      <input type="file" name="file"/> 
      <input type="submit"/> 
</form> 

pourrait vous s'il vous plaît laissez-moi savoir si je manque quelque chose? Merci

+0

Quelle est l'URL de votre html simple? – Bozho

Répondre

0

L'URL principale était http://localhost:8084/WebIDE/, alors action = "/ file/upload" devrait envoyer une requête à la classe marquée avec @Controller. J'ai mis un point d'arrêt et ça ne ramassait pas du tout le contrôleur.

J'ai dû changer ma configuration de ressort pour copier tout ce qui est spécifié dans le contexte de l'application (voir ci-dessus) pour distribuer le servlet mvc-config.xml, et aussi changer la façon dont je les déclarais le parent de mvc- config.xml

On dirait que ça a fait l'affaire! :)

Merci encore pour votre aide et vos suggestions.