SSM框架中poi上传文件

项目中遇到的解析Excel文件,放入到数据库中,记录一下遇到的坑:

1.jsp文件

提交表单:

(‘#form1’)必须为multipart/form-data

要添加form.js插件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
</head>
<body>
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header" style="background-color: #6D7484">
            <!--右上角关闭按钮-->
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
            <!--标题-->
            <h4 class="modal-title" id="myModalLabel">
                <span style="color: white"><b>导入投资者分组</b></span>
            </h4>
        </div>
        <!--表单主体-->
        <div class="modal-body">
            <form method="POST"  enctype="multipart/form-data" id="form1" action="/businessbasedata/investorinfo/importexcel/ajaxUpload.do">
                <table>
                    <tr>
                        <td>上传文件: </td>
                        <td> <input id="upfile" type="file" name="upfile"></td>
                    </tr>
                    <tr>
                        <td><input type="submit" value="上传" onclick="checkData()"></td>
                        <td><input type="button" value="提交" id="btn" name="btn" ></td>
                    </tr>
                </table>
            </form>
        </div>
        <div class="modal-footer">
            <button type="button" id="btn-close" class="btn btn-default" data-dismiss="modal">关闭</button>
            <button type="button" id="btn-save" class="btn btn-primary" onclick="save();">保存</button>
        </div>
    </div><!-- /.modal-content -->
</div><!-- /.modal -->
</body>
<script>
    //ajax 方式上传文件操作
    $(document).ready(function(){
        $('#btn').click(function(){
            if(checkData()){
                alert(111);
                $('#form1').ajaxSubmit({
                    url:'/businessbasedata/investorinfo/importexcel/ajaxUpload.do',
                    dataType: 'text',
                    success: resutlMsg,
                    error: errorMsg
                });
                function resutlMsg(msg){
                    alert(msg);
                    $("#upfile").val("");
                }
                function errorMsg(){
                    alert("导入excel出错!");
                }
            }else{
                alert('上传失败!');
            }
        });
    });
    //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;
    }
</script>
</html>

2.controller

    /**
     * 导入
     */
    @RequestMapping("/importexcel")
    public ModelAndView importexcel() {
        ModelAndView modelAndView = new ModelAndView("businessbasedata/investorgroupref/import");
        return modelAndView;
    }
    /**
     * 上传文件提交
     */
    @RequestMapping(value="/importexcel/ajaxUpload.do",method={RequestMethod.GET,RequestMethod.POST})
    public String ajaxUploadExcel(HttpServletRequest request,HttpServletResponse response) throws Exception {
        return investorInfoService.ajaxUploadExcel(request, response);
    }

3.service

开始老是在request与multipartHttpServletRequest转化那出错

1.spring-context.xml

配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- set the max upload size100MB --> <property name="maxUploadSize"> <value>10485760000</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean>

2.添加multipartHttpServletRequest   pom文件中添加maven依赖

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.4</version>
</dependency>
 

2.

 

  public String ajaxUploadExcel(HttpServletRequest request, HttpServletResponse response) {

        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile file = multipartRequest.getFile("upfile");
        if (file.isEmpty()) {
            try {
                throw new Exception("文件不存在!");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        InputStream in = null;
        try {
            in = file.getInputStream();
        } catch (IOException e) {
            e.printStackTrace();
        }
        List<List<Object>> listob = null;
        try {
            listob = new ExcelUtils().getBankListByExcel(in, file.getOriginalFilename());
        } catch (Exception e) {
            e.printStackTrace();
        }
。。。。
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值