با سلام ؛ من یک مشکل در هنگام ثبت فایل در دیتابس دارم که موقع ثبت چند فایل پشت سر هم در هنگام ثبت کوئری ایی که اطلاعات از دیتابیس هنگام ثبت میگیرند درست عمل نمیکنند و فقط بار اول اعمال میشوند تو اکشن بالا فایل از kendo upload دریافت و ثبت میشه و لی موقعی که چند فایل ارسال میشه دو کوئری زیر درست عمل نمیکنند
یعنی سرعت ثبت بالاتر از حدی که کوئریها اطلاعات رو از db برای هر ثبت فایل بگیرند ضمنا kendo upload به صورت زیر تنظیم شده بدون ارسال همزمان batch غیرفعال است
public ActionResult EditSave(IEnumerable<HttpPostedFileBase> files, int referid) { // OASEntities db = new OASEntities(); // The Name of the Upload component is "files" if (files != null) { int i =(int)db.letterdatas.Where(x => x.referletid == referid).Max(p => p.seq); foreach (var file in files) { bool failtestsize = false; if (file.ContentLength > 5096000) failtestsize = true; if (failtestsize) return Content(new Exception("خطا : حجم فایل ارسالی بیش از حد مجاز میباشد").Message); // System.Threading.Thread.Sleep(2000); var xi = db.letterdatas.Where(x => x.referletid == referid).Count(); if (xi > 4) return Content(new Exception("خطا : تعداد فایلهای ارسالی بیش از حد مجاز میباشد").Message); i++; var fileName = Path.GetFileName(file.FileName); byte[] filedata = new byte[file.ContentLength]; Stream st = file.InputStream; st.Read(filedata, 0, file.ContentLength); var letterdata = new letterdata { data = filedata, extention = Path.GetExtension(file.FileName), filename = fileName, seq = i, referletid = referid, templetguid = null, fileid = Guid.NewGuid(), userid = db.users.Where(x => x.username == User.Identity.Name).Select(x => x.userid).FirstOrDefault() }; db.letterdatas.Add(letterdata); db.SaveChanges(); } } return Content(""); }
int i =(int)db.letterdatas.Where(x => x.referletid == referid).Max(p => p.seq); var xi = db.letterdatas.Where(x => x.referletid == referid).Count();
@(Html.Kendo().Upload() .Name("files") .ShowFileList(true) .Events(x => x.Select("onxselect").Upload("onxupload").Error("o nxerror")) // .Multiple(false) .HtmlAttributes( new { accept = ".pdf" }) .Messages(x => x.Select("انتخاب فایلهای نامه")) .Messages(x => x.Remove("حذف فایل")) .Messages(x => x.Cancel("لغو فایل")) .Messages(x => x.Retry("دوباره")) .Messages(x => x.UploadSelectedFiles("در حال ارسال فایلها ...")) .Messages(x => x.HeaderStatusUploaded("کلیه فایلها ارسال شد")) .Messages(x => x.DropFilesHere("فایلها را به اینجا بکشید")) .Async(a => a .Save("EditSave", "Lettersdata", new { referid = @ViewBag.referid }) .Remove("EditRemove", "Lettersdata", new { referid = @ViewBag.referid }) .AutoUpload(true) // .Batch(true) ) .Files(files => { foreach (var f in @ViewBag.files) { files.Add().Name(f.filename); } } ) )