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

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

    /* form表单提交时注意 enctype="multipart/form-data"
         是必须要加的 至于为什么请自行百度 */
    
......

一、 单文、图片件上传controller

    //  
    //对于单个文件上传使用的 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是相同的值
    // 
    @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值不一样
    // 
    @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 fileNames = multipartRequest.getFileNames();
            while (fileNames.hasNext()) {
                //input name字段值
                String imgname = fileNames.next();
                file = multipartRequest.getFile(imgname);
            }
        }
    }

你可能感兴趣的:(JavaWEB,文件上传,input,file,springMVC,单文件上传,多文件上传)