上传模板读取,不必保存临时目录

上传模板读取,不必保存临时目录

前端代码

// 上传按钮点击事件
$("#uploadFile").click(function () {
    var file = $('#inputFile').val().trim();
    if (file == "") {
        layer.msg("上传文件不能为空!");
        return false;
    }
    var fileExt = file.substr(file.lastIndexOf(".")).toLowerCase();//获得文件后缀名
    if (fileExt == '.csv' || fileExt == '.txt') {
        $("#inputFileTable").ajaxSubmit({
            url: getUrl('/aaaa/uploadFile', token),
            type: "post",
            enctype: "multipart/form-data",
            contentType: "application/x-www-form-urlencoded; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.flag == 'success') {
                    // 刷新前端数据
                    $('#tb_departments').bootstrapTable('refresh');
                    layer.msg('上传成功!');
                } else {
                    layer.msg(data.msg);
                }
            },
            error: function (data) {
                if (data.flag == "error") {
                    layer.msg(data.msg);
                }
            }
        });
    } else {
        layer.msg("仅支持csv格式的文件!");
    }
});

后台对应controller

主要是利用 InputStream inputStream = multipartFile.getInputStream();

/**
 * 上传文件、解析文件内容、入库
 *
 * @param inputFile       上传文件
 * @param auditDataSource 数据源
 * @param request         request
 * @param res             response
 * @return
 */
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public @ResponseBody
Map<String, Object> uploadFile(@RequestParam(value = "inputFile", required = false) MultipartFile inputFile, String dataSource, HttpServletRequest request, HttpServletResponse res) {
    Map<String, Object> mapResult = new HashMap<String, Object>();
    InputStream inputStream = null;
    try {
        dataSource = new String(dataSource.getBytes("ISO-8859-1"), "UTF-8");
        if (StringUtils.isBlank(dataSource)) {
            mapResult.put("flag", "error");
            mapResult.put("msg", "数据源类型异常!");
            return mapResult;
        }
        if (inputFile == null) {
            throw new Exception("未检测到上传文件!");
        }
        inputStream = inputFile.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, CHARSET));
        StringBuffer sb = new StringBuffer();
        String line = reader.readLine();
        // 判断第一行表头
        if (StringUtils.isBlank(line)) {
            mapResult.put("flag", "error");
            mapResult.put("msg", "文件为空");
            return mapResult;
        }
        String[] splitOne = line.split(",", -1);
        if (splitOne.length != cloArr.length) {
            mapResult.put("flag", "error");
            mapResult.put("msg", "文件表头长度异常");
            return mapResult;
        }
        for (int i = 0; i < cloArr.length; i++) {
            if (!cloArr[i].equals(splitOne[i])) {
                mapResult.put("flag", "error");
                mapResult.put("msg", "表头字段不合规:" + splitOne[i]);
                return mapResult;
            }
        }

        // 验证数据
        int l = 1;
        while ((line = reader.readLine()) != null) {
            l++;
            System.out.println(line);
        }

        inputStream.close();
        mapResult.put("flag", "success");
        mapResult.put("msg", "导入成功");
    } catch (Exception e) {
        e.printStackTrace();
        mapResult.put("flag", "error");
        mapResult.put("msg", e.getMessage());
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    return mapResult;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值