Le printemps RESTE MultipartFile fichier est toujours null
Je suis en train de constituer un simple upload avec le html et le Printemps 3.0.6 à l'aide des services REST. J'ai suivi le tutoriel en ligne, mais la MultipartFile paramètre est toujours null. Voici la config et le code:
application-context.xml:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="2000000"/>
</bean>
pom.xml:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
html:
<html>
<head>
<title>Upload a file please</title>
</head>
<body>
<h1>Please upload a file</h1>
<form method="post" action="/site/restServices/artworkUpload/" enctype="multipart/form-data">
<input type="text" name="name"/>
<input type="file" name="file"/>
<input type="submit"/>
</form>
</body>
</html>
RESTE Contrôleur:
@POST
@Path("/artworkUpload")
public String uploadFile(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file) {
try {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
//store the bytes somewhere
return "redirect:uploadSuccess";
} else {
return "redirect:uploadFailure";
}
}
catch (Exception ex)
{
}
return null;
}
J'ai copié l'exemple de Printemps du tutoriel, mais peu importe ce que je change le paramètre fichier est toujours null. "nom" aura la valeur dans la zone de texte, mais le fichier sera nulle.
J'ai aussi essayé d'utiliser Jersey et je reçois le InputStream pour le fichier mais le FormDataContentDisposition est nul donc je ne peux pas déterminer le type de fichier.
C'est en cours d'exécution sur la Jetée.
Ce qui me manque?
OriginalL'auteur C. Locke | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
Que je me souvienne j'ai résolu le même problème en ajoutant des libs pour mon build path:
J'espère que cela va vous aider.
Modifier.
Ok. Enfin j'ai eu le temps pour ce problème. Tout d'abord, pourquoi utilisez-vous le standart des fonctionnalités java pour la construction de repos de service (annotations @POST, @Path)? Parce qu'avec le Printemps, il est préférable d'utiliser spring MVC terme pour le REPOS. Il y a beaucoup d'informations à ce sujet dans internet. Ici est la partie spéciale dans la documentation de référence. Ici aussi, est bon article sur le site IBM. Très bonne description sur la façon de construire contrôleur REST avec Spring MVC est dans Printemps en Action (dernier en 3-d edition).
Ici comment j'ai mis en œuvre simple transfert de fichier fonctionnalités:
Reste contrôleur:
html:
Afficher le programme de résolution de configuration dans dispatcher-servlet.xml:
J'espère que je ne suis pas perdu mon temps et cela est encore nécessaire pour vous. )
EDIT 2
Ici est très bon tuto où décrit comment construire des services web RESTful avec le Printemps 3.1.
J'ai mis à jour ma réponse. Regarder les changements.
J'ai encore besoin d'elle. Merci! Je suis d'essayer votre solution maintenant.
Je ne peux pas voter vous parce que je n'ai pas assez de rep, mais merci pour la solution!
Tout est ok). Juste accepter mon unswer si cela vous a aidé à fermer ce sujet.
OriginalL'auteur dimas
Il m'a aidé à connecter cette bibliothèque:
Toutes les libs:
Voir http://viralpatel.net/blogs/spring-mvc-multiple-file-upload-example/
OriginalL'auteur Elena