我正在使用sql server 2008中的Filestream来存储来自asp.net web应用程序的图像和视频文件。到目前为止,我能够上传一些图像和视频文件,并将它们存储在支持Filestream的sql server数据库中。
但是当我想将图像和视频文件显示回我的应用程序时。我能够获取图像文件并在应用程序中显示它们。但我无法从我的应用程序中检索视频文件并在JW播放器中播放它们。
到目前为止,我已经完成了以下操作:我有一个带有gridview控件的.aspx Web表单。在这个Web表单的代码隐藏中,我为gridview控件绑定了数据,如下所示:
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["tmmaConnectionString"].ConnectionString);
SqlCommand command = new SqlCommand("SELECT ID, ProgramTitle,ProgramVideoName, ProgramId from [tblProgramContent] where programId="+progId, connection);
SqlDataAdapter ada = new SqlDataAdapter(command);
ada.Fill(dt);
GVVideos.DataSource = dt;
GVVideos.DataBind();
我的gridview控件看起来如下
<asp:GridView ID="GVVideos" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText = "Program File Name" DataField="ProgramVideoName" />
<asp:BoundField HeaderText = "Program Title" DataField="ProgramTitle" />
<asp:TemplateField HeaderText="Program Video">
<ItemTemplate>
<!--<asp:Image ID="Image1" runat="server" ImageUrl='<%= "GetProgram.ashx?prog-Id="+ Eval("ProgramId") %>'/>
<asp:LinkButton ID="lbGetFile" runat="server" CommandName="GetFile" CommandArgument='<%#Eval("ProgramId") %>' ><img src='<%#Eval("ProgramId") %>.jpg' /></asp:LinkButton>-->
<div id="play-video" >
<a href="" id="play-prog"> <%#Eval("ProgramVideoName") %> </a>
<embed
flashvars="file=<%# "GetProgram.ashx?prog-Id="+ Eval("ProgramId") %> "
allowfullscreen="true"
allowscripaccess="always"
id="player1"
name="player1"
src="Scripts/jwplayer/player.swf"
width="200"
height="180"
/>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我已经通过<%# "GetProgram.ashx?prog-Id="+ Eval("ProgramId") %>
HTTP处理程序获取程序ID,然后将相应的视频文件返回给客户端。但这并没有返回视频文件并将其嵌入JW播放器中。
有没有更好的方法来执行此操作或我应该对上述示例程序进行哪些修改?