Le Dispatcherservlet doit être explicitement informé comment gérer le multipartresest.
SpringMVC fournit les moyens suivants de télécharger des fichiers
Configurez xxx-servlet.xml et ajoutez le code suivant:
La copie de code est la suivante:
<bean id = "Multipartresolver"
class = "org.springframework.web.multupar.commons.commonsMultipartreSolver">
<! - Réglez la taille maximale des fichiers téléchargés sur 1 Mo ->
<propriété name = "maxuploadsize">
<value> 1048576 </value>
</ propriété>
</ban>
La copie de code est la suivante:
<bean id = "Multipartresolver"
class = "org.springframework.web.multupar.commons.commonsMultipartreSolver">
<! - Réglez la taille maximale des fichiers téléchargés sur 1 Mo ->
<propriété name = "maxuploadsize">
<value> 1048576 </value>
</ propriété>
</ban>
Notez que la taille du fichier ici n'est en fait que la taille totale du fichier
Si vous configurez la taille du fichier, vous pensez que vous devez configurer le contrôle des informations d'exception
Par conséquent, il est nécessaire de configurer un affichage anormal
La copie de code est la suivante:
<! - Lorsque Springmvc dépasse la limite de fichiers de téléchargement, il lance org.springframework.web.multiparting.maxuploadSizeExededException ->
<! - Cette exception a été lancée par SpringMVC lors de la vérification des informations de fichier téléchargées, et elle n'a pas saisi la méthode du contrôleur pour le moment ->>
<bean id = "exceptionResolver"
>
<propriété name = "exceptionmappings">
<props>
<! - Lors de la rencontre d'une exception MAXUPLOADSIZEExeEDEDException, il passera automatiquement à /web-inf/jsp/error_fileupload.jsp Page ->
<accessoire
key = "org.springframework.web.multipart.maxuploadSizeExeEDEDException"> error_fileupload </ prop>
</props>
</ propriété>
</ban>
La copie de code est la suivante:
<! - Lorsque Springmvc dépasse la limite de fichiers de téléchargement, il lance org.springframework.web.multupart.maxuploadSizeExededException ->
<! - Cette exception a été lancée par SpringMVC lors de la vérification des informations de fichier téléchargées, et elle n'a pas saisi la méthode du contrôleur pour le moment ->>
<bean id = "exceptionResolver"
>
<propriété name = "exceptionmappings">
<props>
<! - Lors de la rencontre d'une exception MAXUPLOADSIZEExeEDEDException, il passera automatiquement à /web-inf/jsp/error_fileupload.jsp Page ->
<accessoire
key = "org.springframework.web.multipart.maxuploadSizeExeEDEDException"> error_fileupload </ prop>
</props>
</ propriété>
</ban>
Ou soyez paresseux et ne définissez pas la taille, la valeur par défaut finale est illimitée. Si vous devez contrôler les informations de retour, vous pouvez envisager de retourner les données de format spécifié dans le traitement des exceptions, comme JSON
Après la page de configuration, comme toujours, ajoutez-le au formulaire de formulaire: ENCTYPE = "Multipart / Form-Data"
Ensuite, il y a des actions qui doivent être traitées.
La première méthode:
La copie de code est la suivante:
Public String Login (@RequestParam MultipartFile Fichier, modèle modèle) {
……………………
}
La copie de code est la suivante:
Public String Login (@RequestParam MultipartFile Fichier, modèle modèle) {
……………………
}
Le nom du fichier doit être garanti pour être cohérent avec la valeur d'attribut dans <entrée type = fichier>.
La copie de code est la suivante:
Public String Login (@valid userInfo UserInfo, BindingResult Result, @RequestParam MultipartFile [] Files, modèle modèle) {
……………………
}
La copie de code est la suivante:
Public String Login (@valid userInfo UserInfo, BindingResult Result, @RequestParam MultipartFile [] Files, modèle modèle) {
……………………
}
Un seul fichier peut être omis @RequestParam, plusieurs fichiers ne peuvent pas être omis
La deuxième méthode:
La copie de code est la suivante:
Model PublicAndView HandleRequest (demande httpServleRequest,
HttpServletResponse Response) lève l'exception {
// se transformer en multiparthttprequest:
MultipartHTTPServLetRequest MultipartReQuest = (multipartHTTPServleRequest);
// Obtenez le fichier:
MultipartFile file = multipartReQuest.getFile ("fichier");
}
La copie de code est la suivante:
Model PublicAndView HandleRequest (demande httpServleRequest,
HttpServletResponse Response) lève l'exception {
// se transformer en multiparthttprequest:
MultipartHTTPServLetRequest MultipartReQuest = (multipartHTTPServleRequest);
// Obtenez le fichier:
MultipartFile file = multipartReQuest.getFile ("fichier");
}
De cette façon, vous pouvez également obtenir le fichier
En fait, la première configuration consiste à ajouter deux packages en pot:
Commons-fileupload-1.2.2.jar
Commons-io-2.1.jar