bootstrap fileinput 多文件上傳並回顯


網上很多文章,但是回顯出問題,上傳有兩種格式,一種是異步,一種是同步,我用異步多文件上傳時,異步的請求到后台會多次調用上傳方法,就是有幾個文件就調用幾次,所以我用同步方式,一並處理,回調一次

前端頁面

<head>
    <meta name="viewport" content="width=device-width" />
    <title>日訂單導入</title>
    <script src="~/Scripts/fileinput.js"></script>
    <script src="~/Scripts/zh.js"></script>
    <link href="~/Content/fileinput.css" rel="stylesheet" />
</head>
<body>
    <div style="text-align:center">
        <form>
            <div class="modal-title">
                <h4>請選擇日訂單文件</h4>
            </div>
            <div class="modal-body">
                <input type="file" name="txt_file" id="txt_file" multiple class="file-loading" />
            </div>
            <button type="submit" class="btn btn-default">提交</button>
        </form>
        </div>
    
</body>
</html>


<script type="text/javascript">
    $(function () {
        var control = $("#txt_file");
        var uploadrul = "/VW_Import/DayFileUpload";
        control.fileinput({
            language: 'zh', //設置語言
            uploadUrl: uploadrul, //上傳的地址
            allowedFileExtensions: ['xls','xlsx'],//接收的文件后綴
            showUpload: true, //顯示批量上傳按鈕
            showCaption: false,//是否顯示標題
            browseClass: "btn btn-primary", //按鈕樣式
            dropZoneEnabled: true,//是否顯示拖拽區域
            uploadAsync: false, //默認異步上傳
            showRemove: true, //顯示移除按鈕
            //showPreview: true, //是否顯示預覽
            showCaption: false,//是否顯示標題
            maxFileCount: 100,
            enctype: 'multipart/form-data',
            validateInitialCount: true,
            previewFileIcon: "<i class='glyphicon glyphicon-file'></i>",

            msgFilesTooMany: "選擇上傳的文件數量({n}) 超過允許的最大數值{m}!",
        });
        //導入文件上傳完成之后的事件
        $("#txt_file").on("filebatchuploadsuccess", function (event, data, previewId, index) {
            
            result = $.parseJSON(data.response);
            if (result.success == true) {
                alert("導入成功!");
            }
            else {
                alert(result.errorMsg);
            }
        });
    });
</script>

后台代碼

public ActionResult DayFileUpload()
        {
            try
            {
                HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
                List<VW_DayParts> lst = new List<VW_DayParts>();
                List<VW_DayPartsVersion> versionlst = new List<VW_DayPartsVersion>();
                var checkList = dbVW_DayPartsVersion.Entities().ToList();
                bool update = true;

                for (int j = 0; j < files.Count; j++)
                {
                    HttpPostedFile PostedFile = files[j];
                    string fileName = PostedFile.FileName;

                    //VW_DayPartsVersion s = checkList.Where(m => m.FileName.Contains(fileName)).FirstOrDefault();
                    if (checkList.Where(m => m.FileName.Contains(fileName)).FirstOrDefault() != null)
                    {
                        update = false;
                        break;
                    }

                    string filePath = Server.MapPath("~/VW_Upload/DayOrder/" + fileName);
                    PostedFile.SaveAs(filePath);

                    IWorkbook workbook;
                    //XSSFWorkbook hssfworkbook;
                    string fileExt = Path.GetExtension(fileName).ToLower();
                    using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                    {
                        if (fileExt == ".xlsx")
                        {
                            workbook = new XSSFWorkbook(file);
                        }
                        else if (fileExt == ".xls")
                        {
                            workbook = new HSSFWorkbook(file);
                        } else
                        {
                            workbook = null;
                        }

                        //workbook = new XSSFWorkbook(file);

                    }

                    NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(1);
                    //列數
                    int cellCount = sheet.GetRow(0).LastCellNum;
                    //int cellCount = sheet.GetRow(0).LastCellNum;

                    UserLoginInfo loginInfo = aService.GetUserLoginInfo();

                    VW_DayPartsVersion dVersion = new VW_DayPartsVersion();
                    dVersion.FileName = fileName;
                    dVersion.UpTime = DateTime.Now;
                    dVersion.UserId = loginInfo.UserId;

                    string[] tempName = fileName.Split(' ');
                    dVersion.Factory = tempName[1].Substring(0, 4);
                    versionlst.Add(dVersion);

                    for (int i = 1; i <= sheet.LastRowNum; i++)
                    {
                        //int j = 0;//0 3 4 17 18
                        VW_DayParts item = new VW_DayParts();
                        IRow currentRow = sheet.GetRow(i);// i=1 從第二行開始

                        //物料號
                        if (!string.IsNullOrWhiteSpace(currentRow.GetCell(0).ToString()))
                        {
                            item.MATNR = currentRow.GetCell(0).ToString();
                        }
                        //工廠代碼
                        if (!string.IsNullOrWhiteSpace(currentRow.GetCell(3).ToString()))
                        {
                            item.Factory = currentRow.GetCell(3).ToString();
                        }
                        //合同編號
                        if (!string.IsNullOrWhiteSpace(currentRow.GetCell(4).ToString()))
                        {
                            item.ContractNo = currentRow.GetCell(4).ToString();
                        }
                        //交貨時間
                        if (!string.IsNullOrWhiteSpace(currentRow.GetCell(17).ToString()))
                        {
                            item.DeliveryDate = Convert.ToDateTime(currentRow.GetCell(17).ToString());
                        }
                        //計划數量
                        if (!string.IsNullOrWhiteSpace(currentRow.GetCell(18).ToString()))
                        {
                            item.Quantity = Convert.ToInt32(currentRow.GetCell(18).NumericCellValue);
                        }
                        item.FileName = fileName;
                        item.UpTime = DateTime.Now;
                        item.UserId = loginInfo.UserId;
                        lst.Add(item);
                    }
                }

                if(update)
                {
                    dbVW_DayParts.BulkInsert(lst);
                    dbVW_DayPartsVersion.Insert(versionlst);
                    return Json(MsgCommon.respJsonSuccessMsg());
                }
                else
                {
                    return Json(MsgCommon.respJsonErrorMsg("文件名重復或文件已上傳"));

                }

            }
            catch (DbEntityValidationException dbEx)
            {            
                return Json(MsgCommon.respJsonErrorMsg(dbEx.ToString()));
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM