文档章节

spring上传文件的两种写法

帅的不像男的
 帅的不像男的
发布于 2017/05/25 17:00
字数 713
阅读 25
收藏 0

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();  
    }

 

© 著作权归作者所有

帅的不像男的
粉丝 12
博文 91
码字总数 49823
作品 0
深圳
程序员
私信 提问
SpringBoot | 第十七章:web应用开发之文件上传

前言 上一章节,我们讲解了利用实现前端页面渲染,从而实现动态网页的功能,同时也提出了兼容项目的解决方案。既然开始讲解web开发了,我们就接着继续往这个方向继续吧。通常,我们在做开发时...

oKong
2018/08/08
997
0
Controller中servletFileUpload.parseRequest(request)解析为空

原因分析 首先我们来看下Spring mvc 中文件上传的配置 方式二 这里springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置的CommonsMultipartResolver这个转换器里面下面再来...

抢地主
2017/11/04
144
0
SpringMVC中servletFileUpload解析为空

原因分析 首先我们来看下Spring mvc 中文件上传的配置 再来看看Controller中使用 方式二 这里springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置的CommonsMultipartResol...

rock912
2015/11/04
340
0
springmvc上传多个文件无法使用缓存

SpringMVC在做文件上传,我现在需要做的一个工程要求一次能够分开上传三个文件 同时文件2,文件3有可能不上传任何东西 我现在的写法是用了一个form表单提交,表单内有三个 每个的name各不相同...

水之笔记
2017/03/19
259
0
Spring Dependency

我们知道Spring的最重要的核心是Ioc,有时候也被称为DI(Dependency Injection,依赖注入),那么关于Dependency,你了解多少呢? 之前我们有提到IOC和DI的关系与概念,我是把它们区分开了,所...

Real_man
2018/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js—String的一些方法

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var str="Hello boy" /** * 在底......

zhengzhixiang
17分钟前
3
0
vSphere ESXi 主机上的3种VLAN设置

VLAN - Virtual Local Area Network,虚拟局域网,能便捷地组建一个网络分组,并能提供诸多好处。VMware vSphere ESXi主机上,也可以在个层次上通过设置VLAN标签地形式来组建VLAN。从划分的层...

大别阿郎
39分钟前
5
0
elasticsearch 6.x的基本dsl语句

本文使用的谷歌浏览器插件sense,链接如下sense插件(兼容es6.x版本) 查看集群状态 http://106.12.27.130:9200/_cat/health?v 绿色-一切都很好(集群功能齐全) 黄色——所有的数据都是可用...

长恭
53分钟前
12
0
移动端的弹窗滚动禁止body滚动

本文转载于:专业的前端网站➼移动端的弹窗滚动禁止body滚动 前言 最近一个需求是弹窗展示列表,显然是需要一个滚动条的,而滚动到底部就会穿透到body滚动,而阻止默认行为是不行的,这样两个...

前端老手
今天
18
0
设计模式 建造者模式和模板方法模式扩展篇

建造者模式和模板方法模式扩展篇 UML 与抽象工厂模式比较 本模式可以看出与抽象工厂非常类似,都是产生不同的产品,怎么区分这两种设计的使用场景呢 - 建造者模式关注的是基本方法的调...

木本本
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部