栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

上传文件+读取文件+更新信息

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

上传文件+读取文件+更新信息

摘要:页面上传txt文档,读取文档中的内容,查数据库中现有的信息(次新),更新到最新的数据中。

1 页面按钮


按钮button需要绑定一个点击事件----οnclick= “clickFiles()” ,同时还需要一个input绑定一个改变事件----οnchange=“uploadSpecFiles()”

function clickFiles() {
    $("#file").click();
}
function uploadSpecFiles() {
    var formData = new FormData();
    for (var i = 0; i < $("#file")[0].files.length; i++) { 
        formData.append("file", $("#file")[0].files[i]);
    }
    var le = $("#file")[0].files.length;
    if (le == 0) {
        layer.alert("请选择文件!");
        return;
    } else if (le > 1) {
        layer.alert("只能选择一个文件上传!");
        $("#file").val("");
        return;
    } else {
        //获取文件名最后一个.的位置
        var index= $("#file")[0].files[0].name.lastIndexOf(".");
        //获取文件名后缀
        var ext = $("#file")[0].files[0].name.substr(index+1);
        if(!isAssetType(ext)){
            layer.alert("请上传正确的格式!");
            $("#file").val("");
            return;
        }
        //上传方法
        $.ajax({
            cache: true,
            url: getUrlCutJsessionId(ctx, "XXX/XXX"),  //所需要的列表接口地址
            data: formData,
            dataType: "json",
            type: "post",
            contentType: false,
            processData: false,
            error: function (request) {
                layer.msg("Connection error");
                formData = new FormData();
                $("#file").val("");
            },
            success: function (r) {
                if (r.success) {
                    if(r.data == '0'){
                        layer.open($.extend({
                            content: '上传失败',
                            yes: undefined
                        }, false ? {} : undefined));
                    }else {
                       console.log(r.data);//返回的是一个map集合
                        layer.alert("上传成功,共上传"+r.data['XXX']+"条记录,继承信息成功"+r.data['XXX']+"条记录!");
                    }
                    $("#file").val("");
                    formData = new FormData();
                } else {
                    $("#file").val("");
                    layer.alert(r.msg);
                    formData = new FormData();
                }
            }
        });
    }
}
//判断后缀是否合规
function isAssetType(suffix) {
    return ['txt'].
    indexOf(suffix.toLowerCase()) !== -1;
}
2 读取文件 1>在读取文件时,用到了MultipartFile工具类。

用工具类中的file.getOriginalFilename()得到文件名称,判断文件名称中是否包含特殊字符

String filename = file.getOriginalFilename();
if(!CheckUtil.checkUploadFileName(filename)){
	rr.setSuccess(false);
	rr.setMsg("文件名中不能包含特殊字符。");
    return rr;
}

//判断文件后缀是否符合要求

String suffix = filename.substring(filename.lastIndexOf(".") + 1);
if(!"txt".equals(suffix)){
    rr.setMsg("导入文件必须为txt文件");
    rr.setSuccess(false);
    return rr;
}
2>
Map params = new HashMap<>();
List hrList = new ArrayList<>();
try {
            //创建转换流对象     参数是字节输入流对象
            InputStreamReader reader=new InputStreamReader(file.getInputStream());
            //转换输入流
            BufferedReader br = new BufferedReader(reader);
            String line="";//定义字符串  保存行数据
            while (line !=null) {
                SeriousIllnessPolicy serious = new SeriousIllnessPolicy();
                //读取行数据
                line = br.readLine();
                if(line !=null && !"".equals(line)){//如果行为空,则跳过
                    serious.setEccPersonNo(line);
                    hrList.add(serious);//添加到集合中
                }
            }
            
            if (hrList.size() < 1) {
                result.setMsg("导入数据为空");
                result.setSuccess(false);
                return result;
            }
            params.put("hrList",hrList);
        } catch (IOException e) {
            e.printStackTrace();
        }
3 更新信息
 List hrList = (List) params.get("hrList");
ObjectMapper mapper = new ObjectMapper();
List list = mapper.convertValue(hrList, new TypeReference>() {});
……
//根据得到的list,遍历,查数据库,然后更新信息
        

获取参数时,可能出现的错误类型转换异常:java.lang.ClassCastException: java.util.linkedHashMap cannot be cast to XXX
更新数据量大时,建议用jdbc的写法进行批量更新。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号