jquery+ashx+NOPI文件上传

使用jquery.form 表单插件上传文件

准备工作:

1. vs2010导入NOPI的dll文件,如图:

一定要全部导入,要不然会报错的。

2. 页面引入jquery-form.js文件。


前端代码:

<script src="../js/jquery-form.js" type="text/javascript"></script>
//首先要引入jquery-form.js 下面jq上传要用到表单提交ajaxSubmit方法

    
    
导入
//重要的事情是file要放在form中,且enctype要写对 //jquery方法 function importExcel() { var row = $("#t_unit").datagrid('getSelected'); if ($("#uploadFile").val() == "") { $.messager.alert('提示', "请选择导入的excel", 'info'); } else { var url = "CalRule.ashx?action=import&systemid=" + row.systemid + "&subsystem=" + row.subsystemid; $("#import_file").ajaxSubmit({ type: "POST", url: url, success: function (result) { if (result.status == 1) { $("#uploadFile").val("");//上传成功清空浏览框 $.messager.alert('提示', result.msg, 'info'); grid.datagrid('reload'); } else { $.messager.alert('提示', result.msg, 'info'); } } }); } }

后台处理代码:

public void GetDataFromExcel(HttpContext context)
    {
        //传子系统编号 
        string systemid = context.Request["systemid"];
        string subsystem = context.Request["subsystem"];
        string data_date = "";

        Result res = new Result();
        //接收文件
        HttpPostedFile file = context.Request.Files["uploadFile"];

        if (file != null && file.ContentLength > 0)
        {
            string fileName = System.IO.Path.GetFileName(file.FileName);
            MessageBox.Show(fileName);
            string savePath = System.Web.HttpContext.Current.Server.MapPath("~/file/");
            FileOperatpr(fileName, savePath);
            file.SaveAs(savePath + fileName);
            try
            {
                using (ExcelHelper excelHelper = new ExcelHelper(savePath + fileName))
                {
                    //将excel文件中的数据转换为table的数据
                    DataTable dt = excelHelper.ExcelToDataTable("MySheet", true);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        data_date = dt.Rows[1]["date"].ToString() + "-01";
                        //保存到数据库
                        Boolean flag = SaveExcel(dt, systemid, subsystem, data_date);
                        if (flag)
                        {
                            res.status = 1;
                            res.msg = "导入成功";
                        }
                        else
                        {
                            res.status = 0;
                            res.msg = "导入失败,请检查excel格式或下载模板重新编辑导入";
                        }
                    }
                    else
                    {
                        res.status = 0;
                        res.msg = "表数据为空";
                    }
                }
            }
            catch (Exception ex)
            {
                res.status = 0;
                res.msg = "导入失败";
                Console.WriteLine("Exception: " + ex.Message);
            }
        }
        var result = JsonConvert.SerializeObject(res);
        context.Response.Clear();
        context.Response.ContentType = "application/json";
        context.Response.Write(result);
        context.Response.Flush();
        context.Response.End();
    }

3. 一个小问题:文件上传当点击提交按钮时若还未浏览文件,可直接打开浏览框,选择文件后再次点击提交,方法如下:

    if ($("#uploadFile").val() == "") {
        $('#uploadFile').click();
//        $.messager.alert('提示', "请选择导入的excel", 'info');
    }

  上传时,先判断是否浏览了文件,若尚未浏览文件则直接打开浏览框。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值