PDA

View Full Version : سوال: مشکل دریافت نشدن اطلاعات از دیتابیس در هنگام ثبت فایل



amir3321
یک شنبه 01 شهریور 1394, 13:47 عصر
با سلام من به یک مشکلی برخوردم از دوستان کسی اگه تونست کمکی بده

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("");
}



تو اکشن بالا فایل از kendo upload دریافت و ثبت می شه و لی موقعی که چند فایل ارسال میشه دو کوئری زیر درست عمل نمی کنند

int i =(int)db.letterdatas.Where(x => x.referletid == referid).Max(p => p.seq);
var xi = db.letterdatas.Where(x => x.referletid == referid).Count();

یعنی سرعت ثبت بالاتر از حدی که کوئری ها اطلاعات رو از db برای هر ثبت فایل بگیرند ضمنا kendo upload به صورت زیر تنظیم شده

@(Html.Kendo().Upload()
.Name("files")
.ShowFileList(true)
.Events(x => x.Select("onxselect").Upload("onxupload").Error("onxerror"))
// .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);


}
}
)
)

amir3321
دوشنبه 02 شهریور 1394, 08:16 صبح
از حرفه ای ها کسی نبود یک کمکی بکنه