MultipartException: demande en cours n'est pas un multipart demande
Je suis en train de faire une bonne contrôleur de téléchargement de fichiers. J'ai vu cette
et fait de ce contrôleur:
@RestController
public class MaterialController {
@RequestMapping(value="/upload", method= RequestMethod.POST)
public String handleFileUpload(
@RequestParam("file") MultipartFile file){
String name = "test11";
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded")));
stream.write(bytes);
stream.close();
return "You successfully uploaded " + name + " into " + name + "-uploaded !";
} catch (Exception e) {
return "You failed to upload " + name + " => " + e.getMessage();
}
} else {
return "You failed to upload " + name + " because the file was empty.";
}
}
}
et ensuite, j'ai utilisé le facteur d'envoyer un pdf:
Mais le serveur se bloque avec le message d'erreur:
.MultipartException: Current request is not a multipart request
Plus, j'ai constaté cette, et ajouté un bean.xml
fichier
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
</beans>
Malheureusement, il se plaint toujours avec la même erreur.
Ne sais pas si c'est la cause de votre problème, mais la capture d'écran montre que vous n'avez pas le nom de la . En fonction de vos
Non, vous ne devriez pas avoir besoin de faire un annuaire.
sans rapport avec: Depuis que vous avez annoté de la classe avec
handleFileUpload()
méthode, vous avez besoin pour donner le nom/valeur de la clé de file
. Sans un nom, il n'a probablement pas envoyer quoi que ce soit sur le serveur, et le "rien" = "pas plusieurs parties".Non, vous ne devriez pas avoir besoin de faire un annuaire.
sans rapport avec: Depuis que vous avez annoté de la classe avec
@RestController
, vous n'avez pas besoin d'annoter méthode avec @ResponseBody
. Voir la javadoc: docs.printemps.io/printemps/docs/actuel/javadoc de l'api/org/...OriginalL'auteur Salman Lashkarara | 2017-02-02
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez Facteur pour multipart demande alors de ne pas spécifier un Contenu personnalisé-Type en-Tête. Si votre onglet en-Tête dans le Postier doit être vide. Facteur de déterminer la forme de données de limite. Dans l'onglet Corps de Facteur, vous devez sélectionner les données de formulaire et sélectionnez le type de fichier. Vous pouvez trouver des discussions relatives à https://github.com/postmanlabs/postman-app-support/issues/576
Vérifiez l'onglet en-Têtes, juste avant le Corps dans l'onglet Facteur. Votre demande est correcte mais il y a une entrée dans les en-Têtes que l'image partagée par vous montre les en-Têtes(1). Suppression de l'entrée à partir de là.
OriginalL'auteur abaghel
Il semble que le problème est d'une requête au serveur n'est pas une partie multi-demande. Fondamentalement, vous avez besoin de modifier votre côté client de la forme. Par exemple:
Espère que cette aide.
OriginalL'auteur Javier Z.
J'ai été confrontée au même problème avec les
Postman
pourmultipart
. Je l'ai corrigé en faisant les étapes suivantes:Content-Type
dans leHeaders
section.Body
onglet dePostman
vous devez sélectionnerform-data
et sélectionnezfile type
.Il a travaillé pour moi.
OriginalL'auteur Nilesh Kumar
Dans l'application.propriétés, veuillez ajouter ce:
et dans votre formulaire html, vous avez besoin d'un :
enctype="multipart/form-data"
.Par exemple:
Espérons que cette aide!
OriginalL'auteur N.Luan Pham
à l'ARC (advanced client rest) - précisez ci-dessous pour le faire fonctionner
Content-Type multipart/form-data
(c'est le nom d'en-tête et de la valeur d'en-tête)cela vous permet d'ajouter des données de formulaire clés et valeurs
vous pouvez vous préciser de nom de champ maintenant que par votre REPOS, de spécifications et sélectionnez votre fichier à télécharger à partir du sélecteur de fichiers.
OriginalL'auteur Pravin