توضیحات و دانلود

ذخیره بازیابی و باز کردن فایلهای ویدیویی MP4 با پخش مستقیم از پایگاه داده در ASP.Net MVC
0 0
ذخیره بازیابی و باز کردن فایلهای ویدیویی MP4 با پخش مستقیم از پایگاه داده در ASP.Net MVC

با سلام  در این مقاله با یک مثال چگونه آپلود کردن فایل های MP4 Video ، ذخیره ، بازیابی (نمایش) فایل ها از جدول پایگاه داده و باز کردن فایل ها با Live Streaming از جدول پایگاه داده در ASP.Net MVC Razor را توضیح خواهیم داد .
فایل آپلود و سپس در جدول پایگاه داده ذخیره می شود . فایلهای ذخیره شده در HTML Grid (Table) بازیابی و نمایش داده می شوند و سپس با استفاده از پلاگین FlowPlayer (پخش کننده ویدیویی مبتنی بر Flash) ، فایل ها با Live Streaming از جدول پایگاه داده در ASP.Net MVC Razor پخش می شوند.
بانک اطلاعات
در این مقاله از یک جدول به نام tblFiles استفاده می شود که طرح آن به شرح زیر است.

 توجه :

می توانید جدول بانک اطلاعات SQL را با کلیک روی لینک دانلود کنید. فایل SQL را بارگیری کنید
 
فضاهای نام
باید نامهای زیر را وارد کنید.

using System.IO;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;

Model
کلاس Model زیر شامل ویژگی زیر است که برای درج و پر کردن سوابق فایل ها از پایگاه داده لازم است.

public class FileModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string ContentType { get; set; }
    public byte[] Data { get; set; }
}

Controller
Controller از سه روش تشکیل شده است.
روش انجام عملیات GET
در داخل این روش Action ، روش GetFiles فراخوانی می شود.
در داخل روش GetFiles ، سوابق جدول Files با استفاده از DataReader جمع می شوند و لیست کلی اشیاء کلاس FileModel جمع می شود. سرانجام لیست عمومی اشیاء کلاس FileModel به View باز می گردد.
روش کار با عملکرد POST برای بارگذاری فایل ها
این روش Action با انتخاب یک فایل و دکمه بارگذاری کلیک می شود و فایل آپلود شده را در پارامتر HttpPostedFileBase دریافت می کند.
فایل آپلود شده با استفاده از کلاس BinaryReader به یک Array از Bytes تبدیل می شود و در آخر در جدول پایگاه داده وارد می شود.
پس از درج موفقیت آمیز فایل ، روش GetFiles فراخوانی می شود و لیست کلی اشیاء کلاس FileModel به View باز می گردد.
روش دستیابی به عملکرد GET برای دانلود فایلها
هنگامی که Video Player در داخل جدول HTML (Grid) درخواست پخش فایل Video را می کند ، سپس شناسه فایل خاص به این روش Action ارسال و با استفاده از File ID ، داده های باینری File از پایگاه داده گرفته می شوند.
توجه :

روش عمل زیر File Download را انجام می دهد و از این رو نوع بازگشت روی FileResult تنظیم می شود .
سرانجام پرونده با استفاده از عملکرد File دانلود می شود.

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View(GetFiles());
    }
 
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase postedFile)
    {
        byte[] bytes;
        using (BinaryReader br = new BinaryReader(postedFile.InputStream))
        {
            bytes = br.ReadBytes(postedFile.ContentLength);
        }
        string constr = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            string query = "INSERT INTO tblFiles VALUES (@Name, @ContentType, @Data)";
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@Name", Path.GetFileName(postedFile.FileName));
                cmd.Parameters.AddWithValue("@ContentType", postedFile.ContentType);
                cmd.Parameters.AddWithValue("@Data", bytes);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
 
        return View(GetFiles());
    }
 
    [HttpGet]
    public FileResult DownloadFile(int? fileId)
    {
        byte[] bytes;
        string fileName, contentType;
        string constr = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "SELECT Name, Data, ContentType FROM tblFiles WHERE Id=@Id";
                cmd.Parameters.AddWithValue("@Id", fileId);
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    sdr.Read();
                    bytes = (byte[])sdr["Data"];
                    contentType = sdr["ContentType"].ToString();
                    fileName = sdr["Name"].ToString();
                }
                con.Close();
            }
        }
 
        return File(bytes, contentType, fileName);
    }
 
    private static List<FileModel> GetFiles()
    {
        List<FileModel> files = new List<FileModel>();
        string constr = ConfigurationManager.ConnectionStrings["Constring"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM tblFiles"))
            {
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        files.Add(new FileModel
                        {
                            Id = Convert.ToInt32(sdr["Id"]),
                            Name = sdr["Name"].ToString()
                        });
                    }
                }
                con.Close();
            }
        }
        return files;
    }
}

View
در داخل View ، در اولین خط کلاس FileModel به عنوان IEnumerable اعلام می شود که مشخص می کند که آن به عنوان یک مجموعه در دسترس خواهد بود.
View شامل دو شکل است:
فرم آپلود فایل
این فرم شامل یک FileUpload HTML و یک دکمه ارسال است. با کلیک بر روی دکمه ، روش Index Action برای انجام عملیات POST فراخوانی می شود.
پخش مستقیم فایل های ویدیویی
برای پخش فایل های ویدیویی ، از یک پخش کننده ویدیویی مبتنی بر Flash به نام پلاگین FlowPlayer استفاده می شود. یک حلقه بیش از Model اجرا می شود که یک جدول HTML ایجاد می کند. هر سلول از جدول HTML متشکل از یک عنصر HTML Anchor است که ویژگی HREF به روش DownloadFile Action تنظیم شده است.
پلاگین FlowPlayer با استفاده از کلاس CSS آن که به یک پخش کننده ویدیو Flash تبدیل می شود ، روی هر عنصر Anchor اعمال می شود.

@model  IEnumerable<Videos_Database_MVC.Models.FileModel>
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
    <style type="text/css">
        body {
            font-family: Arial;
            font-size: 10pt;
        }
    </style>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="postedFile"/>
        <input type="submit" id="btnUpload" value="Upload"/>
    }
    <hr/>
    <table cellpadding="0" cellspacing="0">
        @if (Model.Count() > 0)
        {
            foreach (var file in Model)
            {
                <tr>
                    <td>
                        <u>
                            @file.Name
                        </u>
                        <hr/>
                        <a class="player" style="height: 300px; width: 300px; display: block" href='@Url.Action("DownloadFile", "Home", new {fileId = file.Id})'>
                        </a>
                    </td>
                </tr>
            }
        }
    </table>
    <script src="~/FlowPlayer/flowplayer-3.2.12.min.js"></script>
    <script type="text/javascript">
    flowplayer("a.player", "/FlowPlayer/flowplayer-3.2.16.swf", {
        plugins: {
            pseudo: { url: "/FlowPlayer/flowplayer.pseudostreaming-3.2.12.swf" }
        },
        clip: { provider: 'pseudo', autoPlay: false},
    });
    </script>
</body>
</html>

عکس صفحه

پخش کننده ویدیو هنگام پخش نشدن فیلم ها

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :