Fichier de téléchargement Spring MVC – Statut HTTP 405 – La méthode de requête ‘POST’ n’est pas prise en charge.

J’essaie de télécharger le fichier via JSP et le contrôleur, mais je reçois toujours

Statut HTTP 405 – La méthode de requête ‘POST’ n’est pas prise en charge

type Rapport d’état

message La méthode de demande ‘POST’ n’est pas supscope

description La méthode HTTP spécifiée n’est pas autorisée pour la ressource demandée.

Ceci est ma forme (seulement une partie de toutes les pages JSP):

Foto:

Ma part de contrôleur (nom de fichier seulement en boucle maintenant):

 @RequestMapping(value = "/admin/product.file.add", method = RequestMethod.POST) public Ssortingng productFileUpload(@RequestParam("file") MultipartFile file, @RequestParam("productId") int productId) { logger.info(file.getName()); return "redirect:/admin/product"; } 

Et une partie de servlet-context.xml

  

Mais je reçois toujours:

Statut HTTP 405 – La méthode de requête ‘POST’ n’est pas prise en charge

Pourriez-vous s’il vous plaît m’aider quelqu’un? 🙁


Mon contrôleur sans toutes les méthodes:

 @Controller public class ProductController { @Autowired private ProductDao productDao; @Autowired private ProducerDao producerDao; @Autowired private SectionDao sectionDao; @Autowired private TasteDao tasteDao; @Autowired private CategoryDao categoryDao; private static final Logger logger = LoggerFactory .getLogger(ProductController.class); @RequestMapping(value = "/admin/productfileadd", method = RequestMethod.POST) public Ssortingng productFileUpload(@RequestParam("file") MultipartFile file, @RequestParam("productId") int productId) { logger.info(file.getName()); return "redirect:/admin/product"; } } 

Mon application s’exécute sur:

 http://localhost:8080/prosvaly/ 

J’utilise en tout pour le même “style d’action” et cela fonctionne. Sous cette forme quand je clique sur le bouton. Cela me redirige sur le bon chemin. J’ai essayé de changer mon action sur

 action="/prosvaly/admin/productfileadd 

Mais toujours la même erreur. Et lorsque je change de type de méthode de POST en GET, une autre erreur se produit:

 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: The current request is not a multipart request 

Donc, je pense que ce problème n’est pas en action, car la méthode GET peut trouver la même URL

Le problème principal était la sécurité du spring. J’ai résolu ce problème. La sécurité Sprinf bloque mon URL mais je ne sais pas pourquoi.

J’ai résolu ce problème, j’ai ajouté ? $ {_ Csrf.parameterName} = $ {_ csrf.token} à la fin de mon action de formulaire

 

Maintenant ça marche!

La valeur de @RequestMapping est “/admin/product.file.add” et l’action de formulaire est action = “product.file.add”. Je pense que le devrait être action = “/ admin / product.file.add”

Ou vous pouvez essayer avec

J’ai eu le même problème et ma solution était différente. Dans mon cas, j’utilise des configurations basées sur des annotations. J’ai annoté ma classe avec @Controller mais je n’ai jamais demandé à la classe de configuration d’parsingr mon paquet là où se trouvaient les contrôleurs. Pour ce faire, annotez votre classe de configuration

 @ComponentScan(basePackages = "com.controllers.location.package")