SpringMVC 20.文件上传

文件上传

  • Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring 用Jakarta Commons FileUpload 技术实现了一个MultipartResolver 实现类:CommonsMultipartResovler

  • Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring的文件上传功能,需现在上下文中配置 MultipartResolver

  • defaultEncoding: 必须和用户 JSP 的 pageEncoding 属性一致,以便正确解析表单的内容

  • 为了让 CommonsMultipartResovler 正确工作,必须先将 Jakarta Commons FileUpload 及 Jakarta Commons io的类包添加到类路径下。

  • 示例:

springmvc.xml中加入:

<!--配置MultipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="maxInMemorySize" value="1024000"></property>
    </bean>

TestFileuploadHandler.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>TestFileuploadHandler</title>
</head>
<body>
<%--注意method="post" 必填 ,否则:
    Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Current request is not a multipart request
--%>
    <form action="testFileupload" enctype="multipart/form-data" method="post">
        File: <input type="file" name="file">
        DESC: <input type="text" name="desc">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

上传页面:

页面

提交后成功跳转:success.jsp页面

后台打印:

DESC:自我修炼
OriginalFilename:自我修炼.txt
InputStream:java.io.ByteArrayInputStream@5b615680

猜你喜欢

转载自blog.csdn.net/hgx_suiyuesusu/article/details/80219029