spring上传文件的两种写法

1.前端写法

<script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script> 
<script type="text/javascript" src="../js/jquery-form.js"></script>   
<form method="POST"  enctype="multipart/form-data" id="form1" action="education/uploadExcel/upload">  
        <table>  
         <tr>  
            <td>选择文件: </td>  
            <td> <input id="upfile" type="file" name="upfile"></td>  
         </tr>  
        <tr>  
            <!-- <td><input type="submit" value="提交" onclick="return checkData()"></td>  --> 
            <td><input type="button" value="导入班级数据" id="btn" name="btn" ></td> 
            <td><a href="/education/uploadExcel/download?fileName=111.xls" >下载</a></td>
<!--        <td> <input type="button" value="下载年级花名册模板" id="btn_down" name="btn_down" ><button onclick="download()" class="btn btn-warning " type="button">批量导出Excel <i class="fa fa-download"></i></button></td>-->         </tr>  
        </table>    
</form>   
<script type="text/javascript">  
    //ajax 方式上传文件操作  
     $(document).ready(function(){  
        $('#btn').click(function(){  
            if(checkData()){  
                $('#form1').ajaxSubmit({    
                    url:'/education/uploadExcel/ajaxUploadGrade',  
                    dataType: 'json',  
                    success: resutlMsg,  
                    error: errorMsg  
                });   
                function resutlMsg(data){ 
                    if(data.meta.message=='ok'){
                        alert(data.data);    
                    }else{
                        alert(data.meta.message); 
                    }
                    $("#upfile").val("");  
                }  
                function errorMsg(){   
                    alert("导入excel出错!");      
                }  
            }  
        }); 
        $('#btn_down').click(function(){
/*             $.post("/education/uploadExcel/download", { "fileName": "111.xls" },
                       function(data){
                         alert(data.meta.message); 
                         console.log(data.meta.message); 
                       }, "json"); */
             /* try{ 
                var elemIF = document.createElement("iframe");   
                elemIF.src = "/education/document/111.xls";   
                elemIF.style.display = "none";   
                document.body.appendChild(elemIF);   
            }catch(e){ 
                  window.confirm("下载URL出错!");
            } */  
        });  
     });  
       
     //JS校验form表单信息  
     function checkData(){  
        var fileDir = $("#upfile").val();  
        var suffix = fileDir.substr(fileDir.lastIndexOf("."));  
        if("" == fileDir){  
            alert("选择需要导入的Excel文件!");  
            return false;  
        }  
        if(".xls" != suffix && ".xlsx" != suffix ){  
            alert("选择Excel格式的文件导入!");  
            return false;  
        }  
        return true;  
     }  
 //导出信息函数  
function download(){  
    if(confirm("是否要导出数据?")){  
        var url = "/education/uploadExcel/downloadChild";  
        $.post(url,function(data){  
            alert(data.data);  
        });  
    }  
}   
</script> 

2.后台代码

2.1、通过传统方式form表单提交方式导入excel文件
 @UnSessionCheck
    @RequestMapping(value="/upload",method={RequestMethod.GET,RequestMethod.POST})  
    public  String  uploadExcel(HttpServletRequest request) throws Exception {  
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;    
        System.out.println("通过传统方式form表单提交方式导入excel文件!");  
          
        InputStream in =null;  
        List<List<Object>> listob = null;  
        MultipartFile file = multipartRequest.getFile("upfile");  
        if(file.isEmpty()){  
            throw new Exception("文件不存在!");  
        }  
        in = file.getInputStream();  
        listob = new ImportExcelUtil().getBankListByExcel(in,file.getOriginalFilename());  
        in.close();  
          
        //该处可调用service相应方法进行数据保存到数据库中,现只对数据输出  
        for (int i = 0; i < listob.size(); i++) {  
            List<Object> lo = listob.get(i);  
            InfoVo vo = new InfoVo();  
            vo.setName(String.valueOf(lo.get(0)));  
            vo.setCode(String.valueOf(lo.get(1)));  
            vo.setGrade(String.valueOf(lo.get(2)));
            vo.setClassname(String.valueOf(lo.get(3))); 
            vo.setSex(String.valueOf(lo.get(4))); 
              
            logger.info("学生信息-->:"+"  姓名:"+vo.getName()+"  学号:"+vo.getCode()+"   年级:"+vo.getGrade()+"   班级:"+vo.getClassname()+"   性别:"+vo.getSex());
        }  
        return "result";  
    }  
2.2、通过 jquery.form.js 插件提供的ajax方式上传文件 
 @UnSessionCheck
    @ResponseBody  
    @RequestMapping(value="/ajaxUpload",method={RequestMethod.GET,RequestMethod.POST})  
    public void ajaxUploadExcel(HttpServletRequest request,HttpServletResponse response) throws Exception {  
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;    
          
        System.out.println("通过 jquery.form.js 提供的ajax方式上传文件!");  
          
        InputStream in =null;  
        List<List<Object>> listob = null;  
        MultipartFile file = multipartRequest.getFile("upfile");  
        if(file.isEmpty()){  
            throw new Exception("文件不存在!");  
        }  
          
        in = file.getInputStream();  
        listob = new ImportExcelUtil().getBankListByExcel(in,file.getOriginalFilename());  
          
        //该处可调用service相应方法进行数据保存到数据库中,现只对数据输出  
        for (int i = 0; i < listob.size(); i++) {  
            List<Object> lo = listob.get(i);  
            InfoVo vo = new InfoVo(); 
            vo.setName(String.valueOf(lo.get(0)));  
            vo.setCode(String.valueOf(lo.get(1)));  
            vo.setGrade(String.valueOf(lo.get(2)));
            vo.setClassname(String.valueOf(lo.get(3))); 
            vo.setSex(String.valueOf(lo.get(4))); 
              
            logger.info("学生信息-->:"+"  姓名:"+vo.getName()+"  学号:"+vo.getCode()+"   年级:"+vo.getGrade()+"   班级:"+vo.getClassname()+"   性别:"+vo.getSex());
        }  
          
        PrintWriter out = null;  
        response.setCharacterEncoding("utf-8");  //防止ajax接受到的中文信息乱码  
        out = response.getWriter();  
        out.print("文件导入成功!");  
        out.flush();  
        out.close();  
    }

 

转载于:https://my.oschina.net/githubhty/blog/909065

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值