SpringMvc之文件上传

 一、SpringMvc之文件上传

1、相关pom依赖

<!--文件上传-->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>

2、spring-mvc.xml

假如设置文件太小,会上传不了

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
    <property name="defaultEncoding" value="UTF-8"></property>
    <!-- 文件最大大小(字节) 1024*1024*50=50M-->
    <property name="maxUploadSize" value="52428800"></property>
    <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
    <property name="resolveLazily" value="true"/>
</bean>

3、webapp下新建upload.jsp

多功能表单设置:enctype="multipart/form-data"

<%--
  Created by IntelliJ IDEA.
  User: zjjt
  Date: 2021/12/19
  Time: 20:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/book/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="lsy">
    <input type="submit" value="上传">
</form>

</body>
</html>

4、BookController中增加上传方法

记住   MultipartFile lsy要与jsp中的  name="lsy"  一致

@RequestMapping("/upload")
    public String upload(HttpServletRequest request, MultipartFile lsy){
        //lsy代表了客户端上传文件对象
        //将lsy写入到lsy盘
//        BufferedInputStream
//        BufferedOutputStream
        try {
            FileUtils.copyInputStreamToFile(lsy.getInputStream(),new File("E:/test1/"+lsy.getOriginalFilename()));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "bookList";
    }

5、访问

在IDEA中添加硬盘与tomcat网络请求的映射

点击就"+";选择外部源:

选择 BookController中upload方法的地址(E:/test1/): 

 

 6、结果  

 a2.jpg

 

去浏览器访问图片:   

 bye~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值