gpt4 book ai didi

java - Spring MVC上传文件-HTTP状态405-不支持请求方法 'POST'

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:03 24 4
gpt4 key购买 nike

我正在尝试通过 JSP 和 Controller 上传文件,但我总是得到

HTTP 状态 405 - 不支持请求方法“POST”

类型状态报告

不支持消息请求方法'POST'

描述请求的资源不允许指定的 HTTP 方法。

这是我的表单(只是所有 JSP 页面的一部分):

<form method="POST" enctype="multipart/form-data" action="product.file.add">
<input name="productId" type="hidden" />
<tr>
<th>Foto: </th>
<td><input type="file" name="file" /></td>
</tr>
<tr>
<td class="bt" ><input type="submit" value="Add image" /></td>
<td class="bt" ><input type="submit" value="Continue without image" /></td>
</tr>
</form>

我的 Controller 部分(现在只有文件名):

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

和servlet-context.xml的一部分

<beans:bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

但我总是得到:

HTTP 状态 405 - 不支持请求方法“POST”

你能帮我找个人吗? :(


没有所有方法的我的 Controller :

@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 String productFileUpload(@RequestParam("file") MultipartFile file,
@RequestParam("productId") int productId) {
logger.info(file.getName());
return "redirect:/admin/product";
}


}

我的应用程序运行于:

http://localhost:8080/prosvaly/

我在所有方面都使用相同的“ Action 风格”并且它有效。在这种情况下,当我点击按钮时。它以正确的方式重定向我。我试图改变我对

的操作
action="/prosvaly/admin/productfileadd

但还是一样的错误。当我将方法类型从 POST 更改为 GET 时,出现另一个错误:

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

所以我认为问题不在行动中,因为 GET 方法可以找到相同的 URL

最佳答案

主要问题出在 Spring 安全性上。我解决了这个问题。 Sprinf 安全阻止了我的 URL,但我不知道为什么。

我解决了这个问题,我在表单操作的末尾添加了 ?${_csrf.parameterName}=${_csrf.token}

<form method="POST" action="uploadOneFile**?${_csrf.parameterName}=${_csrf.token}**" enctype="multipart/form-data">

现在可以了!

关于java - Spring MVC上传文件-HTTP状态405-不支持请求方法 'POST',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com