I Have a Problem that to Retrieve Video File (.MP4) From SQL Server 2012 DataBase and which has toPlay on Media Player.
In this i am going to upload a Video in DataBase and Display the Link in Listview, and by clicking the Link the Video have to playFOR EXAMPLE : YOUTUBE
PLZ Help Me any one .
This is My Code
YouTube_WebForm.aspx :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Data;
using System.IO;
public partial class YouTube_WebForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
private void BindGrid()
{
string strConnString = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Video from TBL_YouTube";
cmd.Connection = con;
con.Open();
Listviewid.DataSource = cmd.ExecuteReader();
Listviewid.DataBind();
con.Close();
}
}
}
protected void uploadbtn_Click(object sender, EventArgs e)
{
string k = FileUploadbtn.PostedFile.FileName.ToString();
using (BinaryReader br = new BinaryReader(FileUploadbtn.PostedFile.InputStream))
{
byte[] bytes = br.ReadBytes((int)FileUploadbtn.PostedFile.InputStream.Length);
string strConnString = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "insert into TBL_YouTube(ID, FileType, Video) values (@ID, @FileType, @Video)";
cmd.Parameters.AddWithValue("@ID",FileUploadbtn.PostedFile.FileName.ToString() + DateTime.Now.ToLongDateString().ToString());
cmd.Parameters.AddWithValue("@FileType", "video/mp4");
cmd.Parameters.AddWithValue("@Video", bytes);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
protected void LinkID_Click(object sender, EventArgs e)
{
LinkButton linkplayvideo = sender as LinkButton;
this.aPlayer.Visible = true;
this.aPlayer.HRef = linkplayvideo.CommandArgument;
}
}
YouTube_WebForm.aspx
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUploadbtn" runat="server" CssClass="myButton" />
<asp:Button ID="uploadbtn" runat="server" Text="Upload" CssClass="myButton" OnClick="uploadbtn_Click" />
<asp:ListView ID="Listviewid" Visible="true" runat="server" AutoGenerateColumns="false" RepeatColumns="1" CellSpacing="15">
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="LinkID" runat="server" Text="Play" CommandArgument='<%# Eval("Video", "Generic_Handler.ashx?Id={0}")%>' OnClick="LinkID_Click"></asp:LinkButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:ListView>
<a class="player" id="aPlayer" runat="server" visible="false" style="height: 300px; width: 300px; display: block;"></a>
<script src="FlowPlayer/flowplayer-3.2.12.min.js" class="player" type="text/javascript"></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>
</div>
</form>
</body>
DataBase:
ID : varchar(MAX) ----> In ID have to store FileName and Upload Current DataTime
FileType : Varchar(50)
Video : varbinary(MAX)
Generic Handler.ashx
<%@ WebHandler Language="C#" Class="Generic_Handler" %>
using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
public class Generic_Handler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
int id = int.Parse(context.Request.QueryString["ID"]);
byte[] bytes;
string FileType;
string strConnString = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Video, FileType from TBL_YouTube where ID=@ID";
cmd.Parameters.AddWithValue("@ID", id);
cmd.Connection = con;
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
bytes = (byte[])sdr["Video"];
FileType = sdr["FileType"].ToString();
con.Close();
}
}
context.Response.Clear();
context.Response.Buffer = true;
context.Response.AppendHeader("Content-Disposition", "attachment; ID=" + id);
context.Response.ContentType = FileType;
context.Response.BinaryWrite(bytes);
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
In this Video is not Playing
Thanks in Advance
Regards Deepak