【粘】spring mvc 利用MultipartFile 实现文件or文件夹的上传

项目中里粘同事的,出处不好找,如有借鉴雷同见谅。

废话不多说,上代码。

首页是页面

<div id="uploadfile_sea" style="margin-top:  20px;display:none;text-align:center;">
                            <label style="float:left;font-size: 15px;margin-left: 62px;">选择文件:</label>
                            <form  action="#" enctype="multipart/form-data" method="post" id="uploadrlafile">
                                <input type="file" name="file" id="uploadfile_sea_file"  /><!--001 webkitdirectory mozdirectory  -->
                                <button type="button" οnclick="uploadSEAFile()">点击上传</button>
                                <button type="button"  id="cancel_sea">取消上传</button>
                            </form>
                        </div>

ajax请求的一些设置
            traditional: true,
            type:'post',
            contentType: false,  
            processData: false, 

001:是可以上传文件夹的设置,放到input属性中

后台代码

@RequestMapping("/uploadSEAFile")
    @ResponseBody
    public ResultMsg uploadSEAFile( @RequestParam("file") MultipartFile file,HttpServletRequest request){
        ResultMsg massage=new ResultMsg();
        String name="";
        try {
            //转换成这个对象,然后我们需要通过里面的FileItem来获得相对路径
            name = ((CommonsMultipartFile) file).getFileItem().getName();
            String path=request.getSession().getServletContext().getRealPath("SECTION");
            File file_this = new File( path+ "/"+name);
            File file_path =new File(path);  
            if  (!file_path.exists()  && !file_path.isDirectory()) {   
                file_path.mkdirs();
            }
            boolean createNewFile = file_this.createNewFile();//002
            if(createNewFile == true){
                file.transferTo(file_this);
            }else{
                massage.setMessage("文件名重复,上传失败!");
                massage.setState(0);
                return massage;
            }
            massage.setState(1);
            massage.setMessage("文件上传成功!");
        }catch (Exception e){
            e.printStackTrace();
            massage.setMessage("文件上传失败!");
            massage.setState(0);
        }

        return massage;
    }

002处注意:把文件内容重建到新的内容中,如果如果操作成功返回true,如果失败,文件存在就返回false。我觉得还是非常好用的。

 

以上就是所有代码了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值