[代码块]记录

   <div style = "display: none">
         <form id = "csp_oper_manage_load_oper_form" action="index.html" method="post">
             <input type="file" id = "csp_oper_manage_load_oper_file_input" onchange = "cspOperManageLoadOperFileChange(this)">
             <button type="button" id = "csp_oper_manage_load_oper_error_btn" ng-click = "cspOperManageLoadOperFileError()">错误</button>
             <button type="button" id = "csp_oper_manage_load_oper_file_load_btn" ng-click = "cspOperManageLoadOperFileLoad()">上传</button>
         </form>
     </div>
$scope.cspOperManageLoadOperFileLoad = function() {

         $scope.loadoperinfo.errorString = "正在上传并解析文件";
         var fd = new FormData();
         var file = document.getElementById('csp_oper_manage_load_oper_file_input').files[0];
         fd.append('file', file);
         //检查登录状态及cookie自动登录

            var second =5;
                //自动登录成功 to do...
                operManageService.cspOperManageLoadOperUploadFile(fd,function(fdres) {
                    if(fdres.result == "succeed") {
                        $scope.loadopers.splice(0,$scope.loadopers.length);
                        $scope.loadopers = fdres.data;
                        $scope.loadoperinfo.loading = false;
                        $scope.loadoperinfo.fileright = true;
                        for(var i = 0; i < $scope.loadopers.length; i++) {
                            $scope.loadopers[i].selected = false;
                        }
                    }
                    else {
                        $scope.loadoperinfo.error = true;
                        $scope.loadoperinfo.errorString = fdres.reason;
                        var timePromise = undefined;
                        timePromise = $interval(function(){
                           if(second<=0){
                             $interval.cancel(timePromise);
                             timePromise = undefined;
                             $scope.loadoperinfo.loading = false;
                           }
                           else{
                             second--;
                           }
                        },500,100);
                    }
                })
            }


     }

     //全部选中
    service.cspOperManageLoadOperUploadFile = function(params,callback) {
        $http({
             method:'POST',
             url:"/opermanage/loadoperuploadfile",
             data: params,
             headers: {'Content-Type':undefined},
             transformRequest: angular.identity//
        }).success(function(res) {
            callback(res);
        }).error(function(res) {
            var ret = {};
            ret.result = "failed";
            ret.reason = "请求失败";
            callback(ret);
        });
    }
router.post('/loadoperuploadfile',function(req,res) {
    authorization.checkOperAuthorization(req,function(result) {
        if(result.authorization == true) {
            var form = new multiparty.Form({uploadDir: './app/temp/'});
            //上传完成后处理
            form.parse(req, function(err, fields, files) {
                var filesTmp = JSON.stringify(files,null,2);
                if(err) {
                    res.send({"result":"failed","reason":"文件上传失败"});
                    res.end();
                }
                else {
                    var inputFile = files.file[0];
                    var uploadedPath = inputFile.path;
                    var filekindarr = uploadedPath.split(".");
                    var kind = filekindarr[filekindarr.length -1].toLowerCase();
                    if(kind == "csv") {
                        try {
                            var fileStr = fs.readFileSync(uploadedPath, {encoding:'binary'});
                            var buf = new Buffer(fileStr, 'binary');
                            var str = iconv.decode(buf, 'GBK');
                        } catch (e) {
                            if(fs.existsSync(uploadedPath)) {
                                fs.unlinkSync(uploadedPath);
                            }
                            console.error(e);
                            res.send({"result":"failed","reason":"文件内容格式错误"});
                            res.end();
                        } finally {
                            var rows =str.split("\r\n");
                            //排除EXCEL保存CSV文件时最后带空字符
                            for(var j=0;j<rows.length;j++){
                                if(rows[j]=='')
                                rows.splice(j,1);
                            }
                            if(rows.length > 1) {
                                var cvsData = []
                                for(var k = 0; k < rows.length; k ++) {
                                    var rData = [];
                                    rData = rows[k].split(",");
                                    cvsData[k] = rData;
                                }
                                if(cvsData[0][0] === "资产管理人编号" && cvsData[0][1] === "操作员账号" && cvsData[0][2] === "操作员名称" && cvsData[0][3] === "手机号码") {
                                    var cvsjson = [];
                                    for(var m = 1; m < cvsData.length; m ++) {
                                        var oper = {};
                                        oper.maid = cvsData[m][0];
                                        oper.oid = cvsData[m][1];
                                        oper.oname = cvsData[m][2];
                                        oper.phone = cvsData[m][3];
                                        cvsjson[m-1] = oper;
                                    }
                                    res.send({"result":"succeed","data":cvsjson});
                                    res.end();
                                }
                                else {
                                    res.send({"result":"failed","reason":"文件内容格式错误"});
                                    res.end();
                                }
                            }
                            else {
                                res.send({"result":"failed","reason":"文件内容格式错误"});
                                res.end();
                            }
                            if(fs.existsSync(uploadedPath)) {
                                fs.unlinkSync(uploadedPath);
                            }
                        }

                    }
                    else {
                        try {
                            var obj = xlsx.parse(uploadedPath);
                        } catch (e) {
                            if(fs.existsSync(uploadedPath)) {
                                fs.unlinkSync(uploadedPath);
                            }
                            console.error(e);
                            res.send({"result":"failed","reason":"文件内容格式错误"});
                            res.end();
                        } finally {
                            if(typeof(obj) == "undefined") {
                                return;
                            }
                            var xlsData = obj[0].data;
                            if(xlsData.length > 1) {
                                if(xlsData[0][0] === "资产管理人编号" && xlsData[0][1] === "操作员账号" && xlsData[0][2] === "操作员名称" && xlsData[0][3] === "手机号码") {
                                    var xlsjson = [];
                                    for(var i = 1; i < xlsData.length; i ++) {
                                        var oper = {};
                                        oper.maid = xlsData[i][0];
                                        oper.oid = xlsData[i][1];
                                        oper.oname = xlsData[i][2];
                                        oper.phone = xlsData[i][3];
                                        xlsjson[i-1] = oper;
                                    }
                                    res.send({"result":"succeed","data":xlsjson});
                                    res.end();
                                }
                                else {
                                    res.send({"result":"failed","reason":"文件内容格式错误"});
                                    res.end();
                                }
                            }
                            else {
                                res.send({"result":"failed","reason":"文件内容格式错误"});
                                res.end();
                            }
                            if(fs.existsSync(uploadedPath)) {
                                fs.unlinkSync(uploadedPath);
                            }
                        }
                    }
                }
            })
        }
        else {
            res.send({"result":"failed","reason":"未授权的请求"});
            res.end();
        }
    })
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值