La requête a été rejetée car aucune limite multi-parties n'a été trouvée dans springboot
Que je suis en train d'essayer cela avec le printemps de démarrage et de webservices avec facteur de chrome add-ons.
En facteur content-type="multipart/form-data"
et j'en suis la ci-dessous exception.
HTTP Status 500 - Request processing failed;
nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request;
nested exception is java.io.IOException:
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
Dans le Contrôleur, j'ai spécifié le code ci-dessous
@ResponseBody
@RequestMapping(value = "/file", headers = "Content-Type= multipart/form-data", method = RequestMethod.POST)
public String upload(@RequestParam("name") String name,
@RequestParam(value = "file", required = true) MultipartFile file)
//@RequestParam ()CommonsMultipartFile[] fileUpload
{
//@RequestMapping(value="/newDocument", , method = RequestMethod.POST)
if (!file.isEmpty()) {
try {
byte[] fileContent = file.getBytes();
fileSystemHandler.create(123, fileContent, name);
return "You successfully uploaded " + name + "!";
} catch (Exception e) {
return "You failed to upload " + name + " => " + e.getMessage();
}
} else {
return "You failed to upload " + name + " because the file was empty.";
}
}
Ici, je spécifier le gestionnaire de fichier de code
public String create(int jonId, byte[] fileContent, String name) {
String status = "Created file...";
try {
String path = env.getProperty("file.uploadPath") + name;
File newFile = new File(path);
newFile.createNewFile();
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(newFile));
stream.write(fileContent);
stream.close();
} catch (IOException ex) {
status = "Failed to create file...";
Logger.getLogger(FileSystemHandler.class.getName()).log(Level.SEVERE, null, ex);
}
return status;
}
source d'informationauteur Mohammed Javed | 2016-03-15
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous définissez le Type de Contenu par vous-même, laissez-le vide. Google Chrome va le faire pour vous. Le multipart Content-Type doit connaître la limite de fichier, et lorsque vous retirez le Type de Contenu, le Facteur le fera automatiquement pour vous.
Décoché le type de contenu en Facteur, facteur de détecter automatiquement le type de contenu en fonction de vos suggestions dans le moment de l'exécution.
L'échantillon
Cela a fonctionné pour moi:
Le téléchargement d'un fichier via le Facteur, pour un spring mvc backend webapp:
Backend:
Facteur:
Le "Facteur - REPOS Client" n'est pas approprié pour faire une action post avec la définition de type de contenu.Vous pouvez essayer d'utiliser "Advanced client REST" ou autres.
En outre, les en-têtes a été remplacé par le consomme et produit depuis le Printemps 3.1 M2, voir https://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements. Et vous pouvez utiliser directement
produces = MediaType.MULTIPART_FORM_DATA_VALUE
.problème n'est pas dans votre code .problème avec votre demande. vous n'êtes pas obtenir un peu limite en multi-partie de la demande.
J'ai eu le même problème lors d'un POST de demande de Facteur et, plus tard, j'ai pu résoudre le problème en définissant un Contenu personnalisé-Type avec une valeur limite définie avec elle comme cela.
Je pensais que les gens peuvent rencontrer le même problème et donc, je partage ma solution.