详细 input file + springMVC 文件、图片上传讲解

文件上传form表单注意事项!!!

    /* form表单提交时注意 enctype="multipart/form-data"
         是必须要加的 至于为什么请自行百度 */
    <form action="接口地址" method="post" enctype="multipart/form-data">
    	<!-- 这是单个文件上传的input标签  也可以上传多张图片
    	 上传多张图片的话就要用第二种 controller方法进行接收 -->
        <input type="file" name="file">
        
    	<!-- 这是多个input标签  name值不同 使用第三种controller方法接收 -->
        <input type="file" name="file1">
        <input type="file" name="file2">
        <input type="file" name="file3">
	......
    </form>

一、 单文、图片件上传controller

    //  <input type="file" name="file">
    //对于单个文件上传使用的 controller
    //只需要写一个 MultipartFile  即可
    @RequestMapping("")
    public void csdnConttroller(MultipartFile file){
        //拿到 input file 标签的 name
        file.getName();
        try {
            //拿到input流 这一步会抛出异常
            InputStream in = file.getInputStream();
            //拿到input流之后想怎么操作 自己说了算 想怎么上传就怎么上传
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

二、多文件、图片上传controller

    /* 对于多个文件上传使用的 controller
    //只需要把 MultipartFile 变成数组形式接收即可
    //这个方法针对 一个input标签选择多个文件
    // 或者是多个input标签name是相同的值
    // <input type="file" name="file">
    @RequestMapping("2")  */
    public void newCsdn(MultipartFile[] files){
        for (MultipartFile file: files) {
            //拿到 input file 标签的 name
            file.getName();
            try {
                //拿到input流 这一步会抛出异常
                InputStream in = file.getInputStream();
                //拿到input流之后想怎么操作 自己说了算 想怎么上传就怎么上传
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

三、多文件、图片上传多个input标签且name值不同

    //对于多个文件上传使用的 controller
    //并且是多个input标签 且name值不一样
    // <input type="file" name="file">
    @RequestMapping("3")
    public void inputFiles(HttpServletRequest request){
        MultipartFile file = null;
        CommonsMultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        if (resolver.isMultipart(request)) {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            Iterator<String> fileNames = multipartRequest.getFileNames();
            while (fileNames.hasNext()) {
                //input name字段值
                String imgname = fileNames.next();
                file = multipartRequest.getFile(imgname);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值