js教程

AjaxFileUpload文件上传示例代码

我的站长站 2023-03-07 人阅读

AJAXFileUpload下载地址:https://github.com/carlcarl/ajaxFileUpload

前台引用文件 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>

后台接收

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);
         }
        
        
         
   
     }
 
 }
相关推荐
  • js代码
  • 大文件上传
  • ajaxFileUpload
  • js指定时间定时自动执行代码分享

    示例代码用的`setTimeout()`函数,在指定的时间后执行。代码非常的简单,获取当前时间和设定一个指定时间,指定时间减去当前时间就是定时的时间,如果定时器到期时等于0,就代表时间到了,就运行executeAtTime函数的方法。function executeAtTime() { console....

    js教程 96 1年前
  • JS代码解除网页右键限制

    JS解除右键限制方法一javascript:(function () {function R(a) {ona = "on" + a;if (window.addEventListener){window.addEventListener(a, function (e) {for (var n = e.originalTarget; n; n = n.parentNode){n[ona] = null;}}, true);}window[o...

    js教程 202 4年前
  • 淘宝买家秀API+ajax代码

    淘宝买家秀API+ajax代码,用的是这个API,https://api.66mz8.com/api/rand.tbimg.php?format=jsonJSON返回格式,测试依旧可用。$(function(){ $.get('https://api.66mz8.com/api/rand.tbimg.php?format=json',function(data){ document.getElementB...

    js教程 748 4年前
  • php+ajax大文件分片上传示例代码

    代码思路PHP在上传超大的文件时,不能只让后端PHP上传,会容易上传到一半内测益处失效。需要前端要和后端相互配合一起来处理,文件上传要使用ajax的方法,而不是form的submit的方式。前端把file文件对象按一定的大小分割成一定大小的文件(如按2M或5M来分割),对...

    php教程 69 1年前
  • 宝塔面板环境上传大文件失败配置方法

    宝塔面板环境上传100M大小的文件,在上总是报错,但是在本地可以正常上传。上传小一点的文件,就不报错。代码和nginx和php的配置文件都设置了150M,超时时间也设置了,应该没啥问题。但就是报错。百度好久,网上说的答案都试了,没效果。解决方法1、fread()的方法...

    宝塔面板 270 1年前
  • php上传大文件必备配置方法

    项目要求如果你的项目需要用到大文件上传或下载功能,就必须首先修改PHP的配置才行,否则上传或下载操作就会超时,操作失败。操作步骤打开php配置文件php.ini,首先找到; file uploads ;区域,有影响文件上传的以下几个参数:file_uploads = on ;//是否允许...

    php教程 81 1年前
  • ajaxFileUpload上传实例代码教程

    //上传图标 function ajaxFileUpload() { $.ajaxFileUpload({ url: "@Url.Action("UploadImgFile", "Upload")", //用于文件上传的服务器端请求地址 secureuri: false, //一般设置为false ...

    js教程 45 1年前
  • AjaxFileUpload文件上传示例代码

    AjaxFileUpload下载地址:https://github.com/carlcarl/AjaxFileUpload前台引用文件 ajaxfileupload.js@{ ViewBag.Title = "数据导入"; Layout = "~/Views/Shared/_IndexLayout.cshtml";}<!--单个文件--><script src="~/Content/scripts/upload...

    js教程 29 1年前
最新更新
  • js返回上一页、刷新页面代码大全

    返回上一页代码:<a href="javascript:history.go(-1)">返回上一页</a>onclick返回上一页代码:<a href="javasc...

    js教程 2天前
  • js语言!=与!==的区别

    != (不等于)!= 是松散的不等于运算符。它在比较两个值时,会先进行类型转换(type coercion),然后再比较值是否不...

    js教程 6天前
  • JS防止网站被扒的解决方法

    这个代码能够直接保护整个站,而不再是单个页面,直接把代码放到自己的网站上,如果是博客建议放到header.php头部...

    js教程 3周前
  • Hexo插件开发实战教程

    Hexo的插件嵌入有两种方式,一种是通过脚本(Scripts)的方式引入,一种是通过插件(Packages)的方式将自定义的插件内...

    js教程 1个月前
  • JavaScript定时删除指定元素方法

    JavaScript定时删除指定元素一般用到自动隐藏的效果功能上面,主要用到了JS的setTimeout语法。下面是一个定时...

    js教程 1个月前