zoukankan      html  css  js  c++  java
  • 上传功能

    前台:用Uploader插件写好前台

     var uploader1 = null;
        var uploadExcelUrl = '@Url.Action(uploadAction, controllerName)';//后台获取前台导入的文件

    function InitUploader() {
            uploader1 = $.fn.cfwinUploader.upload({
                //baseUrl: '/Scripts/cfw.webuploader/',
                postUrl: uploadExcelUrl,
                // 定义按钮
                btnAddFile: $('#uploadExcel'),
                // 设置上传类型,0为图片,1为文件,2为文件和图片
                type: 1,
                // 限制文件个数
                fileNumLimit: 10,
                // 请求参数
                params: { tenatName: '', blobId: '' },
                // 文件限制
                configure: {
                    fileMaxSize: 15,
                    fileExt: 'xls,xlsx',
                },
                // 回调方法
                callback: {
                    // 上传过程中触发
                    uploadProgress: function (file, percentage) {
                        $("#" + file.id + " .progress-bar").css('width', (percentage * 100).toFixed(2) + "%");
                    },
                    uploadComplete: function (file) { //不管成功或者失败,文件上传完成时触发
                    },
                    uploadSuccess: function (file, data) {
                        uploader1.reset();
                        if (data) {
                            if (data.hasOwnProperty("success")) {
                                if (data.success) {
                                    if (data.Result.length > 0) {
                                        data.Result.forEach(function(el, index) {
                                       
                                        });
                                        $.messager.showInfoCenter('系统提示', '上传数据成功!');
                                    }
                                } else {
                                    $.messager.showErrorCenter('错误消息', data.message);
                                }
                            } else {
                                $.messager.alert('系统提示', "抱歉,你不具有当前操作的权限!", 'error', function () {
                                    //window.location.href = window.location.href;
                                });
                            }
                        } else {
                            $.messager.showErrorCenter('错误消息', '上传数据失败!');
                        }
                        $('#datagrid').datagrid('reload');
                        $('#' + file.id).remove();
                    },
                    uploadError: function (file, reason) {
                        $.messager.showErrorCenter('错误消息', '上传数据失败,失败原因:' + reason);
                    },
                    onFileQueued: function (file) {
                        uploader1.upload();
                    }
                }
            });
        }

    后台: //导入
            //上传组件
            public JsonResult uploadAction(HttpPostedFileBase file, string detailList = null)
            {
                var json = new JsonSerializer();
                var list = new List<StoreOtherInDetailDTO>();
                if (detailList != null)
                {
                    JsonReader reader = new JsonTextReader(new StringReader(detailList));
                    list = json.Deserialize<List<StoreOtherInDetailDTO>>(reader);
                }
                return GetServiceJsonResult(() =>
                {
                    var result = ScmService.OtherInExcelTemplate(file.InputStream, list);//Service层处理具体代码
                    return result;
                });
            }

    Service层处理具体代码

     public List<List<RowValue>> GetWorksheetRowListData(int sheetIndex)
            {
                try
                {
                    var sheet = Workbook.GetSheetAt(sheetIndex);
                    if (sheet == null)
                        return null;
                    var result = new List<List<RowValue>>();
                    var headerRow = sheet.GetRow(0);
                    var cellCount = headerRow.LastCellNum;
                    var maxRow = sheet.LastRowNum;
                    for (var i = 0; i <= maxRow; i++)
                    {
                        var row = sheet.GetRow(i);
                        var emptyRow = true;
                        if (row == null) continue;
    
                        cellCount = cellCount != 0 ? cellCount : row.LastCellNum;
                        var columns = new List<RowValue>();
                        for (int j = 0; j < cellCount; j++)
                        {
                            var cell = row.GetCell(j);
                            
                            var alphabet = IndexToColumn(j + 1);
                            var headerCell = headerRow.GetCell(j);
                            var headerValue = GetCellValue(headerCell);
                            var columnName = !string.IsNullOrEmpty(headerValue)
                                ? headerValue
                                : i.ToString();
                            var cellValue = string.Empty;
                            if (cell != null)
                            {
                                cellValue = GetCellValue(cell);
                            };
                            if (cellValue != null && !string.IsNullOrEmpty(cellValue.Trim()))
                            {
                                emptyRow = false;
                            }
                            var rowValue = new RowValue
                            {
                                RowId = i,
                                ColumnId = j,
                                CellName = alphabet,
                                ColumnName = columnName,
                                CellValue = cellValue
                            };
                            columns.Add(rowValue);
                        }
                        if (!emptyRow)
                        {
                            result.Add(columns);
                        }
                    }
                    return result;
                }
                catch (Exception ex)
                {
                    if (Workbook != null)
                    {
                        Workbook.Close();
                        Workbook = null;
                    }
                    LogUtil.LogError("Couldn't get the row's List<RowValue> data by sheet name.", ex.Message + Environment.NewLine + ex.StackTrace);
                    return null;
                }
            }
  • 相关阅读:
    遇到屏蔽selenium的站点如何突破
    subprocess.Popen stdout重定向内容实时获取
    thinkphp Composer安装指南
    职场片
    php。。。
    多线程相关
    狂刷1000题~~2
    狂刷1000题~~1
    关于eclipse中看不到源码的问题
    一篇看懂++i i++
  • 原文地址:https://www.cnblogs.com/BaoWeiHome/p/7493283.html
Copyright © 2011-2022 走看看