当前位置: 首页 > news >正文

ajaxfileupload-上传文件示例

1.引用文件 ajaxfileupload.js

 

@{
    ViewBag.Title = "数据导入";
    Layout = "~/Views/Shared/_IndexLayout.cshtml";
}
<!--单个文件-->
<script src="~/Content/scripts/uploadify/ajaxfileupload.js"></script>

<script>
    var loadingstatus = "";
  
    var tmpkey = request('tmpkey'); //这里特别约定为了简约处理模板的key对应的解析方法名称和模板key一致
    var keyvalue = request('keyvalue'); 
    $(function () {
        var url = '../../Master/ImportTemplate/DownloadTmp?tmpKey=' + tmpkey;
        $('#lr-import').attr('href', url);
        $('#uploadFile').bind("change", function (e) {
            //btn_importdata();
        });

  //  beginCount();
    });

    var timeID;

    function btn_importdata() {
        $('#msg').html("");
        var path = $("#uploadFile").val();
        if (!path) {
            dialogMsg("请选择要上传的文件!", 0);
            return;
        }
        loadingstatus = "loading";
        $('#msg').append("<br>执行中,这可能需要一些时间,请耐心等待....</br>");
        $('#msg').append("<br>如果检测到有错误的请您按照提示排查处理后重新导入....</br>");
        $.ajaxFileUpload({
            url: "../../CVRM/ImportExcel/ImportData?key=" + keyvalue + "&funName=" + tmpkey,
            secureuri: false,
            fileElementId: 'uploadFile',
            dataType: 'json',
            success: function (data) {
                if (data.status) {
                    var result = data.msg;
                    $('#msg').append(result);
                }
                else {
                     
                    dialogMsg(data.message, 0);
                }
            }
            
        });
    }

    function btn_close() {
        dialogClose();
    }

    function beginCount() {
    timeID = setInterval("getMsg()", 2000);
    }
    function stopCount() {
        clearInterval(timeID);
    }
    function getMsg() {
        if (loadingstatus == "loading") {
            $.ajax({
                url: "../../CVRM/ImportExcel/GetImportMsg",
                dataType: "json",
                async: true,
                type: 'GET',
                success: function (data) {
                    console.log(data);
                    if (data.errorcode==0) {
                        $('#msg').append(data.message);
                        if (data.message=="stop") {
                            stopCount();
                        }
                    } else {
                        stopCount();
                    }
                    
                }
            })
        }
    
    }

    
</script>
<form id="form1" style="margin-left: 1px; margin-right: 1px;">
    <div class="formHead">
        <div class="mcp_container">
            <div class="col-xs-8 mcp-form-item" style="padding-left:5px;">
                <input id="uploadFile" name="uploadFile" type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
            </div>
            <div class="col-xs-4 mcp-form-item">
                <div class="btn-group">
                    <a id="lr-choose" class="btn btn-default" onclick="btn_importdata()"><i class="fa fa-sign-in"></i>&nbsp;开始导入</a>
                    <a id="lr-import" class="btn btn-default" >  <i class="fa fa-download"></i>&nbsp;下载模板</a>
                </div>
            </div>
            <div  id="msg">
              
            </div>

        </div>
 
    </div>
 

</form>
 

 

 

3.后台接收

   public ActionResult ImportData(string key,string funName="")
        {
            try
            {
                HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;

                if (files != null && files.Count > 0 && files[0].ContentLength > 0 && !string.IsNullOrEmpty(files[0].FileName))
                {
                    string path = AppDomain.CurrentDomain.BaseDirectory + @"Upload\temp\";
                    DirectoryInfo dir = new DirectoryInfo(path);
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }
                    string filename = Path.GetFileName(files[0].FileName);
                    if (!string.IsNullOrEmpty(filename))
                    {

                        var keyValue = Guid.NewGuid().ToString();
                        string FileEextension = Path.GetExtension(files[0].FileName);
                        filename = keyValue + FileEextension;
                        string Fullfilename = Path.Combine(path, filename);
                        files[0].SaveAs(Fullfilename); //保存服务器

                        //写入数据库
                        ImportExcelBiz importBiz = new ImportExcelBiz();
                        ImportExcelResultEntity result = importBiz.ImportData(key, funName, Fullfilename);
                         
                        //用完即删
                        if (System.IO.File.Exists(Fullfilename))
                        {
                            //如果存在则删除
                            System.IO.File.Delete(Fullfilename);
                        }
 
                        return new ReponseModel { status = true, msg = result.Msg };
                    }
                    else
                    {
                        return Error("没有发现您上传的文件名,可能是浏览器兼容问题,请您换个浏览器试试! 详情: files[0].FileName  filename为null");
                    }

                }
                else
                {
                    return HttpNotFound("没有发现您要上传的文件!");
                }

            }
            catch (Exception ex)
            {
                return Error("导入excel到报价中出现了异常 详情:"+ex.Message);
            }
          
          
           
     
        }

    }

  

转载于:https://www.cnblogs.com/benbenfishfish/p/8675161.html

相关文章:

  • 4027. [HEOI2015]兔子与樱花【树形DP】
  • 1491. [NOI2007]社交网络【最短路计数】
  • Java基础-比较运算符Compare Operators
  • LDAP DIT设计参考
  • 爬取校园新闻首页的新闻
  • 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文
  • node爬虫-使用puppeteer
  • 使用linux下的crontab定时任务跑定时脚本
  • mycat的wrapper.log日志中发现主从切换报错
  • react组件的生命周期
  • oracle中两个时间类型的数据相减默认得到的是天数。
  • 阿里云禁止25端口,使用465端口发送运维邮件
  • CentOS下设置Tomcat开机自动启动操作步骤
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布...
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Android Studio:GIT提交项目到远程仓库
  • GitUp, 你不可错过的秀外慧中的git工具
  • interface和setter,getter
  • js中forEach回调同异步问题
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux下的乱码问题
  • Mac转Windows的拯救指南
  • node-glob通配符
  • Octave 入门
  • python 装饰器(一)
  • spring security oauth2 password授权模式
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 关于extract.autodesk.io的一些说明
  • 简单实现一个textarea自适应高度
  • 使用 Docker 部署 Spring Boot项目
  • 推荐一个React的管理后台框架
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我看到的前端
  • 用mpvue开发微信小程序
  • 字符串匹配基础上
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #NOIP 2014# day.2 T2 寻找道路
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (算法)求1到1亿间的质数或素数
  • (转)创业家杂志:UCWEB天使第一步
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET的数据绑定
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET学习全景图
  • :not(:first-child)和:not(:last-child)的用法
  • @Bean注解详解