zoukankan      html  css  js  c++  java
  • C# mvc 上传多个附件

    1  <div class="col-xs-12 mcp-list-item" style="margin-top:20px">
    2                                     <div class="mcp-list-item-title">附件</div>
    3                                     <input onchange="upload()" id="uploadFile" name="uploadFile" placeholder="多个请按下Ctrl后选取文件" type="file" value="文件选取" multiple="multiple">
    4                                 </div>
    5                                 <div class="col-xs-12 mcp-list-item">
    6                                     <a class="btn btn-success" onclick="btn_upload()"><i class="fa fa-upload"></i>开始上传</a>
    7                                 </div>



    //下面这一段代码是用来显示图片容器的

      <div id="imgList">
              <img id="fileUrl" style=" 100px; height: 100px; border-radius: 100px;" />
          </div>
          
          <div id="fileList">
    
          </div>
     
            //图片上传
            function upload() {
    
                var f1 = document.getElementById('uploadFile').files;
                if (f1.length>0) {
                    var form = $('#imgList');
                    for (var i = 0; i < f1.length; i++) {
    
                        var src1 = window.URL.createObjectURL(f1[i]);
                        var imgid='fileUrl_'+i;
                        var oldElement = $('#fileUrl');
                        var newElement = $(oldElement).clone();
                        $(oldElement).attr('id', imgid);
                        $(oldElement).before(newElement);
                        $(oldElement).appendTo(form);
                        $(oldElement).attr('src', src1);
                       // $('#' + imgid).src = src1
                    }
                }
                
               
    
    
    
                //var f = document.getElementById('uploadFile').files[0];
             
                //var src = window.URL.createObjectURL(f);
                //var filetype = "GIF,JPEG,JPG,PNG,pdf";
                //document.getElementById('fileUrl').src = src;
    
                
    
                //if (f == null || f == "") {
                //    dialogMsg('请选择文件!', 0);
                //    return;
                //} else if (f != "" && f != undefined && f != null) {
                //    var imgtype = ff.toLowerCase().split('.');
                //    if (filetype.indexOf(imgtype[1].toUpperCase()) == -1) {
                //        dialogMsg('图片类型必须是.gif,jpeg,jpg,png,pdf中的一种!', 0);
                //        return;
                //    }
                //}
            
    
            }
            function btn_upload() {
        
                var refids = [];
                var rows = $('#Delivery_Grid').datagrid('getRows');
                $.each(rows, function (index, item) {
                    refids.push(item.reforderid);
                   
                });
    
                var numArr = [];
                var txt = $("#fileList").find("input:file"); //获取所有上传附件框
                for (var i = 0; i < txt.length; i++) {
                    numArr.push(txt.eq(i).attr('id'));       //将附件框的ID添加到数组中
                }
    
    
                if (!$('#formState').Validform()) {
                    return false;
                }
                var postData = $("#formState").GetWebControls();
    
                $.ajaxFileUpload({
                    url: "/TMS.Service/ServiceMilestone/UploadFile?reforderid=" + refids.join(','),
                    secureuri: false,
                    fileElementId: 'uploadFile',
                    dataType: 'json',
                    //data: postData,
                    success: function (data) {
                        if (data.status) {
                            dialogMsg(data.message, 1);
                      
                            document.getElementById('fileUrl').src = "";
                            document.getElementById('uploadFile').src = "";
    
                        } else {
                            dialogMsg(data.msg, 0);
                        }
                    }
                });
    
            }

    记得引入   <script src="~/Content/scripts/uploadify/ajaxfileupload.js"></script>

    后台代码:

      [HttpPost]
            public ActionResult UploadFile(MilestoneInfo minfo)
            {
    
                try
                {
    
                    var filelist = new List<Cargo.Entity.FileInfoEntity>();
                    if (minfo == null)
                    {
                        throw new Exception("找不到milestone节点所属的业务信息 ");
                    }
    
                    if (Request != null && Request.Files != null && Request.Files.Count > 0)
                    {
                        string FileServerUrl = ConfigurationManager.AppSettings["FileServerUrl"].ToString();
                        string serverBasePath = AppDomain.CurrentDomain.BaseDirectory + @"Upload	emp";
                        DirectoryInfo dir = new DirectoryInfo(serverBasePath);
                        if (!dir.Exists)
                        {
                            dir.Create();
                        }
                        foreach (string fileStr in Request.Files)
                        {
                            HttpPostedFileBase file = Request.Files[fileStr] as HttpPostedFileBase;
                            if (file != null && file.ContentLength > 0)
                            {
                                string filename = Path.GetFileName(file.FileName);
                                string savePath = serverBasePath + @"" + filename;
                                var fileExtName = Path.GetExtension(savePath);
                                file.SaveAs(savePath);
                                string uploadDate = DateTime.Now.ToString("yyyyMMdd");
                                string address = FileServerUrl + $"Home/UploadFile?module={TMS_Enum.TMS_SysFileInfoEnum.TMS_module.ToString()}&folderId={TMS_Enum.TMS_SysFileInfoEnum.TMS_folderId.ToString()}&uploadDate=" + uploadDate;
                                var buffer = new WebClient().UploadFile(address, "post", savePath);
                                string result = Encoding.UTF8.GetString(buffer);
    
                                var serverFilePath = FileServerUrl + result.Replace("~/", ""); //最终服务器存储的地址
                                                                                               //判断文件是不是存在 清空临时存储的文件
                                if (System.IO.File.Exists(savePath))
                                {
                                    //如果存在则删除
                                    System.IO.File.Delete(savePath);
                                }
                                filelist.Add(new Cargo.Entity.FileInfoEntity
                                {
                                    FileExtensions = fileExtName,
                                    FilePath = serverFilePath,
                                    FileName = filename,
    
                                });
                            }
                        }
     
                    }
    
    
                    //这里为了避免上传文件事务长时间锁死,所以放置到这里进行操作,先上传耗时的文件操作,再考虑操作数据库
                    SaveMilestone(
                        minfo,
                        filelist);
                    return new ResponseModel { status = true, msg = "提交成功!" };
    
                }
                catch (Exception ex)
                {
    
                    return new ResponseModel { status = false, msg = ex.Message };
                }
    
            }


  • 相关阅读:
    让ASP.NET MVC页面返回不同类型的内容
    在 ASP.NET MVC 中使用 HTTPS (SSL/TLS)
    BrnMall多店版网上商城正式发布
    Brn系列网上商城发布指南
    CSS和SVG中的剪切——clip-path属性和<clipPath>元素
    C#实现调用Java类中方法
    WCF 第五章 会话级别的实例
    细说 ASP.NET Cache 及其高级用法
    C#使用SOAP调用Web Service
    JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯
  • 原文地址:https://www.cnblogs.com/benbenfishfish/p/10407495.html
Copyright © 2011-2022 走看看