asp.net mvc 导入 ajax excel,或者图片上传 后台不能接收的问题

来源:互联网 发布:数据分析r语言实战 编辑:程序博客网 时间:2024/06/06 23:43

这里写图片描述

做如图所示功能,ajax上传excel文件到后台解析.
提交到后台总是获取不到文件,有连个参数需要添加.
processData: false,
contentType: false,
没有这两个参数要么报错,要么后台接收不了文件.

下面贴下代码

 $.ajax({            url: "/CustomerManage/CustomerUser/ExcelImportData",            type: 'POST',            data: data,            dataType: 'JSON',            processData: false,            contentType: false,            beforeSend: function () {                debugger;                $.loading(true, options.loading);            },            success: function (data) {                if (data == "Success") {                    //清空输入框                }            },              complete: function () {                $.loading(false);            },            error: function (XMLHttpRequest, textStatus, errorThrown) {                $.loading(false);                $.modalMsg(errorThrown, "error");            }        });

控制器代码

  [HttpPost]        public ActionResult ExcelImportData()        {            List<CRM.Model.customer> list = new List<CRM.Model.customer>();            HttpPostedFileBase fostFile = Request.Files["file1"];            DataTable table = Command.Excel.ExcelHelper.ExcelImport(fostFile);            string ret = userBLL.ExcelImport(table);            return Content(ret);        }

表格解析代码

 public static DataTable ExcelImport(HttpPostedFileBase postFile)        {            DataTable dt = new DataTable();            Stream streamfile = postFile.InputStream;            ISheet sheet = null;            if (postFile.FileName.IndexOf(".xlsx") == -1)//2003            {                HSSFWorkbook hssfworkbook = new HSSFWorkbook(streamfile);                sheet = hssfworkbook.GetSheetAt(0);            }            else//2007            {                XSSFWorkbook xssfworkbook = new XSSFWorkbook(streamfile);                sheet = xssfworkbook.GetSheetAt(0);            }            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();            IRow headerRow = sheet.GetRow(0);            int cellCount = headerRow.LastCellNum;            for (int j = 0; j < cellCount; j++)            {                ICell cell = headerRow.GetCell(j);                dt.Columns.Add(cell.ToString());            }            for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)            {                IRow row = sheet.GetRow(i);                DataRow dataRow = dt.NewRow();                for (int j = row.FirstCellNum; j < cellCount; j++)                {                    if (row.GetCell(j) != null)                        dataRow[j] = row.GetCell(j).ToString();                }                dt.Rows.Add(dataRow);            }            return dt;        }

前端,控制器,都有了,现在不差啥了.
欢迎关注出处.找软件网 www.zhruanjian.com 所求源码,或者知道请加我qq.

阅读全文
0 0
原创粉丝点击