HttpServletRequest 到 MultipartHttpServletRequest:ClassCastException

发布于 2024-12-26 01:25:18 字数 478 浏览 0 评论 0 原文

我想将 httpServletRequest 转换为 multipartHttpServletRequest。当我尝试此操作时,会发生 ClassCastException

MultipartHttpServletRequest request = (MultipartHttpServletRequest)req;

此错误仅在 AJAX 调用时发生,对于表单提交不会发生。

我已完成所有必要的步骤,如下所示:

  1. 使用 commons-fileupload.jar
  2. 设置 enctype="multipart/form-data"
  3. 定义 multiparResolver bean在春天的背景下。

请帮忙。

I want to cast httpServletRequest to multipartHttpServletRequest. When I try this, a ClassCastException occurs.

MultipartHttpServletRequest request = (MultipartHttpServletRequest)req;

This error occurred only for AJAX call, for form submit it doesn't happen.

I've done all necessary steps as follows:

  1. Use commons-fileupload.jar
  2. Set enctype="multipart/form-data"
  3. Define multiparResolver bean in spring context.

Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别再吹冷风 2025-01-02 01:25:18

除了

<form method=<method> action=<url> enctype="multipart/form-data"></form>

你必须

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

在你的 spring 配置文件中。

Apart from having

<form method=<method> action=<url> enctype="multipart/form-data"></form>

you have to have

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

in your spring configuration file.

你的往事 2025-01-02 01:25:18

是的,通过Ajax你无法上传文件内容,因此当请求没有任何文件内容时,spring无法准备MultipartHttpServletRequest,这会导致ClassCastException。然后你必须使用在html中使用iframe的技术来上传文件,同时提供ajax风格的上传。

Yes, through Ajax you cannot upload file content, so as request not having any file content spring cannot prepare MultipartHttpServletRequest, which causes ClassCastException. Then you have to use technique of using iframe in html to upload file while giving ajax style upload.

醉酒的小男人 2025-01-02 01:25:18

要获取 MultipartHttpServletRequest ,请尝试此操作

 MultipartHttpServletRequest multiPartRequest = new DefaultMultipartHttpServletRequest(req);

To get the MultipartHttpServletRequest , try this

 MultipartHttpServletRequest multiPartRequest = new DefaultMultipartHttpServletRequest(req);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文