آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 20 : کار با فایل ها یک

آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 20 : کار با فایل ها یک

برای استفاده از این فیلم آموزشی باید هزینه آن را پرداخت کنید.

شما می توانید 3 دقیقه از این ویدیو را به صورت رایگان مشاهده کنید

در قسمت بیستم از دوره آموزشی ASP.NET MVC، به ادامه مبحث کار با فایل ها خواهیم پرداخت. در قسمت قبلی با نحوه آپلود و دانلود فایل ها آشنا شدیم، در این قسمت با نحوه ذخیره اطلاعات فایل ها در بانک اطلاعاتی آشنا خواهیم شد. مباحثی که در این قسمت به بررسی آن ها می پردازیم:

  1. نحوه تعریف جدول مربوط به فایل های آپلود شده در بانک اطلاعاتی
  2. چگونگی استفاده از Guid برای نام فایل ها جهت ذخیره فایل ها بر روی دیسک و همگام سازی آن ها با رکورد های بانک اطلاعاتی
  3. نحوه استفاده از FileHash جهت جلوگیری از آپلود فایل های تکراری در سرور

مدرس: حسین احمدی
منبع: TOSINSO.COM
#دوره_آموزشی_asp.net_mvc #آموزش_asp.net_mvc #آموزش_طراحی_وب #کار_با_فایل_ها_در_asp.net_mvc #ذخیره_فایل_در_بانک_اطلاعاتی
عنوان
1 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 1 : شروع دوره متفاوت 19′:35″ رایگان
2 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 2 : نصب و فعال سازی 10′:42″ رایگان
3 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 3 : آشنایی با الگوی MVC 52′:19″ 8,580
4 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 4 : View ها و Razor 44′:50″ 7,370
5 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 5: Route ها و Navigation 44′:45″ 7,700
6 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 6 : استفاده از HTML Help 25′:0″ رایگان
7 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 7 : POST و ارسال مقادیر 44′:13″ 7,700
8 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 8 : کاربرد Model Binding 28′:29″ 6,050
9 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 9 : Model Validation 41′:56″ 8,250
10 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 9 : Remote Validation 34′:33″ رایگان
11 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 11 : Application و سشن 21′:30″ 6,050
12 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 12 : آشنایی با Cookie ها 34′:13″ 7,150
13 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 13 : آشنایی با Area ها 18′:35″ رایگان
14 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 14 : رمزنگاری و Keys 32′:30″ 8,250
15 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 15 : بارگزاری در IIS 19′:45″ 4,950
16 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 16 : Action Filter ها 26′:7″ 6,050
17 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 17 : Membership و کاربر 1:8′:16″ رایگان
18 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 18 : Membership و کاربر 33′:23″ 8,250
19 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 19 : کار با فایل ها یک 38′:20″ 7,500
20 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 20 : کار با فایل ها یک 41′:48″ 8,000
21 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 21 : شناخت OutputCache 22′:28″ 7,000
22 آموزش ASP.NET MVC (ای اس پی دات نت) قسمت 22 : شناخت StructureMap 21′:34″ 6,500
زمان و قیمت کل 12:4′:51″ 115,350
12 نظر
علیرضا قدیری

سلام

چطور میشه درصد اپلود فایل را نمایش داد ؟

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

ابوالفضل رهنما

سلام

مهندس نظرتان در مورد استفاده از fileStream چیه

چون می خواهم از این روش استفاده کنم

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

ابوالفضل رهنما

سلام

من مهندس من کد زیر را نوشته ام و صحیح هم کارمیکند

@{
    Layout = "../Shared/_Layout.cshtml";
}

<div id="collapse1" class="container">
    @Html.Action("LoadTable", "Home")
</div>
<div>
    @using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.AntiForgeryToken()
        <input id="imgInp" type="file" name="file" />
        <input type="submit" name="Upload File" />
        <br />
        <hr />
        <button id="Add">AddForAjax</button>
        <span>@DateTime.Now.TimeOfDay</span>
    }
</div>


@section scripts
{
    <script>
        $('#Add').on("click",
            function(e) {
                e.preventDefault();
                debugger;
                let _this = $(this);
                let _form = _this.closest("form");

                let token = $('input[name=__RequestVerificationToken]').val();
                let form = new FormData();
                let files = $("#imgInp").get(0).files;
                if (files.length > 0) {
                    form.append("file", files[0]);
                }
                form.append("__RequestVerificationToken", token);
                $.ajax({
                    url: '@Url.Action("UploadFileAjax", "Home")',
                    data: form,
                    type: "POST",
                    processData: false,
                    contentType: false,
                    success: function(res) {
                        $('#collapse1').html(res);
                    }
                });
                
            });
    </script>
}

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult UploadFileAjax(HttpPostedFileBase file)
        {
            var fileBytes = new byte[file.InputStream.Length];
            file.InputStream.Read(fileBytes, 0, fileBytes.Length);
            var filehash = Convert.ToBase64String(MD5.Create().ComputeHash(fileBytes));
            if (dbContext.UploadedFiles.Any(f => f.FileHash == filehash))
            {
                Session["Message"] = "File Already uploaded...";
                return RedirectToAction("LoadTable", "Home");
            }
            var fileId = Guid.NewGuid();
            var filePath = System.IO.Path.Combine(Server.MapPath("~/UploadedFiles"), fileId.ToString());
            file.SaveAs(filePath);
            var uploadedFile = new UploadedFile()
            {
                Id = fileId,
                ContentType = file.ContentType,
                FileHash = filehash,
                FileLength = file.ContentLength,
                FileName = file.FileName,
                UploadDate = DateTime.Now
            };
            dbContext.UploadedFiles.Add(uploadedFile);
            dbContext.SaveChanges();
            Session["Message"] = "File Uploaded successfuly...";
            return RedirectToAction("LoadTable", "Home");
        }

حالا فرض کنید جای یک فایل چندین فایل را کاربر می تواند انتخاب کند

برای ثبت چندین فایل باید چه تغییراتی در کد ایجاد کنم

باتشکر

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

ابوالفضل رهنما

سلام و تشکر

مهندس

 if (files.length > 0) {
                    form.append("file", files[0]);

را چگونه مقداری دهی کنم

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

ابوالفضل رهنما

سلام

مهندس من کد زیر را نوشته ام

 public ActionResult Create(DocumentationAdd documentationAdd, HttpPostedFileBase[] file)
        {
             foreach (var items in file)
                        {
                            var documentationAtach = new DocumentationAtachAdd
                            {
                                DocumentationAtachId = Guid.NewGuid(),
                                DocumentationId = newGuId,
                                FileName = items.FileName,
                                ContentType = items.ContentType,
                                FileLength = items.ContentLength,
                            };
                            documentationAtach.Attached = new byte[items.ContentLength];
                            items.InputStream.Read(documentationAtach.Attached, 0, items.ContentLength);
                        
                            db.DocumentationAtachRepository.Add(DocumentationAtachMapper.AddDocumentationAtach(documentationAtach));
                            db.Complete();
                        }
        }

کد زیر درست کار میکند (برای همه پسوندها)اما وقتی فایلی که پسوندش docx یا xlsx است

ContentType

را برابر

application/vnd.openxmlformats-officedocument.wordprocessingml.document

و FileLength را برابر 0 و همچنین Attached را برابر 0x قرار میدهد

برای حل این مشکل باید چکار کنم باتشکر

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

ابوالفضل رهنما

سلام

بله

fileBytes را {byte[0]} برمیگرداند فقط در doc,docx این مشکل وجود دارد

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....