SpringMVC中文件的上传

第一步:导入相关的jar

依赖 commons-io
<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>

第二步:配置spring.xml文件

<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 默认编码 -->
    <property name="defaultEncoding" value="utf-8" />
    <!-- 文件大小最大值 -->
    <property name="maxUploadSize" value="10485760000" />
    <!-- 内存中的最大值 -->
    <property name="maxInMemorySize" value="40960" />
</bean>

第三步:写页面

<form action="${pageContext.request.contextPath}/emp/insertOne" method="post" enctype="multipart/form-data">
<input type="file" name="cover" />
<input type="submit" class="button" value="提交" />
</form>

第四步:写controller

@RequestMapping("/insertOne")
public String insertOne(MultipartFile cover, HttpServletRequest request, Emp emp){
    String path = request.getSession().getServletContext().getRealPath("/img");
    String fileName = cover.getOriginalFilename();//获取文件的原始名字
    //真正创建这个目录
    File dir = new File(path,fileName);
    //用当前这个文件对象      创建文件夹
    if(!dir.exists()){
        //生成这个文件夹
        dir.mkdir();
    }
    try {
        cover.transferTo(dir);
        empService.insertOne(emp);
        return "redirect:/dept/showAll";
    } catch (Exception e) {
        e.printStackTrace();
        return "jsp/addEmp";
    }
}

第五步:测试

文件上传的注意事项

1.配置文件上传解析器 并且id=multipartResolver
2.用MultiPartFile接受文件对象 形参和文本框中的name保持一致
	//拿到原始文件名
        String originalFilename = aa.getOriginalFilename();
        //拿到文件类型
        String contentType = aa.getContentType();
        //文件拷贝
        aa.transferTo(new File(realPath,originalFilename));
3.文件上传大小限制
<!--文件上传解析器  注意:id必须命名为multipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
       <!--配置文件上传的最大值 默认只要加了文件解析器的springmvc对文件大小没有限制  20M-->
       <property name="maxUploadSize" value="20971520"></property>
    </bean>
4.文件上传前台的注意事项
	必须为post形式的请求 ,文本框类型为file,enctype=multipart/form-data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值