我正在使用 sql server 2008 中的 Filestream 来存储来自 asp.net Web 应用程序的图像和视频文件。到目前为止,我能够上传一些图像和视频文件并将它们存储在启用 Filestream 的 sql server 数据库中。
但是当我想将图像和视频文件都显示回我的应用程序时。我能够获取图像文件并将它们显示在应用程序中。但我无法从我的应用程序中检索视频文件并在 JW Player 中播放它们。
到目前为止,我已经完成了以下工作: 我有一个带有 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") %>
接受程序 ID 的 HTTP 处理程序,然后将相应的视频文件返回给客户端。但这不会返回视频文件并将其嵌入到 JW 播放器中。有没有更好的方法来做到这一点,或者我应该对上述示例程序进行哪些修改?