springMVC文件上传

springmvc文件上传,底层使用commons-fileupload.我们使用的时候就需要把fileupload的依赖导入到工程中

1.文件上传三要素:
1. 提供文件选择框:<input type="file" name="自定义名字">

2. 表单提交方式必须为:method="post"

3. 表单的enctype属性必须为:"multipart/form-data"	
2 springMVC框架完成文件上传:
  • 在springmvc.xml中配置文件解析器,注意文件解析器的id是固定值
  • 在Controller中,在方法参数上中提供一个 MultipartFile 类型的参数 , 参数名字为 input标签name属性
  • 在方法中调用MultipartFile 的api进行获取上传文件的内容(例如:文件名字,流,)
<form action="${pageContext.request.contextPath}/upload/test1" method="post" enctype="multipart/form-data">
    用户名:<input type="text" name="username"><br>
    用户文件:<input type="file" name="ff"><br>
    <input type="submit" value="保存">
</form>
<!--
        配置文件解析器
            id必须为:multipartResolver
    -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--设置一次上传总的大小 单位byte-->
    <property name="maxUploadSize" value="5201314"/>
    <!--设置每个文件最大大小-->
    <property name="maxUploadSizePerFile" value="2501314"/>
</bean>
@Controller
@RequestMapping("upload")
public class G_UploadController {

    @PostMapping("test1")
    @ResponseBody
    public String test1(MultipartFile ff,String username) throws IOException {
        System.out.println(username);

        //指定保存文件的目录
        File dirFile = new File("e:/upload");
        if (!dirFile.exists()) {
            dirFile.mkdirs();
        }

        //保存文件
        if (ff!=null) {
            //获取文件名称
            String filename = ff.getOriginalFilename();
            //设置随机名称
            filename = UUID.randomUUID().toString()+"_"+filename;

            //保存文件
            ff.transferTo(new File(dirFile,filename));
        }

        return "success~~~";
    }
}
多文件上传
<form action="${pageContext.request.contextPath}/upload/test2" method="post" enctype="multipart/form-data">
    用户名:<input type="text" name="username"><br>
    用户文件1:<input type="file" name="ff"><br>
    用户文件2:<input type="file" name="ff"><br>
    用户文件3:<input type="file" name="ff"><br>
    <input type="submit" value="保存">
</form>
@PostMapping("test2")
@ResponseBody
public String test2(MultipartFile[] ff, String username) throws IOException {
    System.out.println(username);

    //指定保存文件的目录
    File dirFile = new File("e:/upload");
    if (!dirFile.exists()) {
        dirFile.mkdirs();
    }

    if (ff != null && ff.length > 0) {
        for (MultipartFile mf : ff) {
            //保存文件
            //获取文件名称
            String filename = mf.getOriginalFilename();
            //设置随机名称
            filename = UUID.randomUUID().toString() + "_" + filename;
            //保存文件
            mf.transferTo(new File(dirFile, filename));
        }
    }

    return "success~~~";
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值