Comment obtenir multipartentity de httpservletrequest
Je suis en train d'invoquer un service web à partir d'java spring contrôleur. Ci-dessous est le code
private void storeImages(MultipartHttpServletRequest multipartRequest) {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"http://localhost:8080/dream/storeimages.htm");
MultipartFile multipartFile1 = multipartRequest.getFile("file1");
MultipartEntity multipartEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("file1",
new ByteArrayBody(multipartFile1.getBytes(),
multipartFile1.getContentType(),
multipartFile1.getOriginalFilename()));
postRequest.setEntity(multipartEntity);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
}
Ci-dessus est seulement partielle du code. Je suis en train de déterminer comment les récupérer sur le serveur. Sur le côté serveur, j'ai le Printemps suivant contrôleur de code
@RequestMapping(value = "/storeimages.htm", method = RequestMethod.POST)
public ModelAndView postItem(HttpServletRequest request,
HttpServletResponse response) {
logger.info("Inside /secure/additem/postitem.htm");
try {
//How to get the MultipartEntity object here. More specifically i
//want to get back the Byte array from it
} catch (Exception ex) {
ex.printStackTrace();
}
return new ModelAndView("success");
}
J'ai exécuté ce code et mon contrôle est d'aller du côté serveur. Mais je suis coincé sur la façon de récupérer le tableau d'octets à partir de la multipartentity objet.
Édité exigence:
Ici, c'est l'exigence. L'utilisateur télécharge les images sur le site (Ce qui est fait et de travail) Le contrôle est du Ressort du contrôleur après le formulaire de soumission (Ce qui est fait et de travail) Au Printemps contrôleur, je suis en utilisant plusieurs parties pour obtenir le contenu de la forme. (Ce qui est fait et de travail) Maintenant, je veux appeler un service web qui va envoyer l'image en tableau d'octets à l'image du serveur.(Ce qui doit être fait) Sur le serveur d'image, je veux recevoir ce webservice demande obtenir tous les champs de HTTPServlerRequest, de stocker les images et retour(Ce qui doit être fait)
Comment puis-je vérifier si je suis en utilisant la Servlet 3.0. J'utilise tomcat 7. J'ai essayé d'écrire cela, mais ne semble pas fonctionner. La taille de la Liste est de 0. Liste<Partie> formData = new ArrayList(requête.getParts()); Pièce = formData.get(0); String parameterName = partie.getName(); logger.info("STORC IMAGES -" + parameterName);
Tomcat 7 est un Conteneur de Servlet 3.0
OriginalL'auteur user1241438 | 2012-08-26
Vous devez vous connecter pour publier un commentaire.
Enfin résolu. Voici ce qui a fonctionné pour moi.
Côté Client
Côté serveur
OriginalL'auteur user1241438
Dans mon projet, nous avons l'habitude d'utiliser MultipartParser de com.oreilly.les servlets pour gérer
HttpServletRequests
correspondant àmultipart
demandes, comme suit:Espère que cette aide.
OriginalL'auteur Vikdor
Plutôt que de faire tout à la main, vous pouvez utiliser les Ressorts Mutlipart soutien
Le contrôleur peut fonctionner comme ça (dans Cet exemple, l'utilisation d'un objet de commande pour enregistrer d'autres entrées de l'utilisateur -- (c'est un exemple à partir d'un projet de travail)).
Pour activer le Printemps Multipart soutien dont vous avez besoin pour configurer quelques trucs:
web.xml (Ajouter org.springframework.web.multipart.de soutien.MultipartFilter après CharacterEncodingFilter et avant HttpMethodFilter)
Dans votre Configuration Spring pour le CORE (pas de MVC Servlet) de votre application ajouter cette
Alors vous aussi besoin de l'commons fileupload bibliothèque, parce que le Printemps MultipartFile est juste une sorte de Addapter
Pour plus de Détails:
@Voir Printemps de Référence, Chapitre 15.8 Printemps multipart (fileupload) soutien
Je n'étais pas en mesure de tirer cette exigences de votre question.
Ici, c'est l'exigence. L'utilisateur télécharge les images sur le site (Ce qui est fait et de travail) Le contrôle est du Ressort du contrôleur après le formulaire de soumission (Ce qui est fait et de travail) Au Printemps contrôleur, je suis en utilisant plusieurs parties pour obtenir le contenu de la forme. (Ce qui est fait et de travail) Maintenant, je veux appeler un service web qui va envoyer l'image en tableau d'octets à l'image du serveur.(Ce qui doit être fait) Sur le serveur d'image, je veux recevoir ce webservice demande obtenir tous les champs de HTTPServlerRequest, de stocker les images et retour(Ce qui doit être fait)
Mise à jour de votre question avec cette exigence!
OriginalL'auteur Ralph
de traiter avec le printemps des fichiers vers le contrôleur. vous devez indiquer, dans votre app-config.xml comme suit:
et de traiter le code comme suit
et ce pour le rouge multipart
J'espère que cette aide.
OriginalL'auteur Delari Jesus