当我尝试从blob中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我无法显示它。音频文件存储在Azure上,作为" PhotoGallery"中的blob。 " songsnippets"
下的容器使用网络表单对我来说是新的,通常,我会使用MVC,但我的教育需要使用它。
视图代码 -
<form id="form1" runat="server">
<asp:ScriptManager ID="sm1" runat="server" />
<div>
Upload Song:
<asp:FileUpload ID="upload" runat="server" />
<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click" />
</div>
<div>
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:ListView ID="ThumbnailDisplayControl" runat="server">
<ItemTemplate>
<audio src='<%# Eval("Url") %>' controls="" preload="none"></audio>
<asp:Literal ID="label" Text='<%# Eval("Title") %>' runat="server"/>
</ItemTemplate>
</asp:ListView>
<asp:Timer ID="timer1" runat="server" Interval="1000" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
PagePre渲染方法背后的代码 -
ThumbnailDisplayControl.DataSource = from o in getPhotoGalleryContainer().GetDirectoryReference("songsnippet").ListBlobs()
select new { Url = o.Uri };
ThumbnailDisplayControl.DataBind();
答案 0 :(得分:1)
当我尝试从blob中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我无法显示它。
根据ASP.NET服务器页面中的代码,我假设您在单击submitButton
按钮时上传音频文件,并使用Timer控件以定义的间隔启用部分页面更新,更新ThumbnailDisplayControl
。
根据我的理解,您需要为timer1
指定 OnTick ,并在相关的timer1_Tick
事件中,您需要在您的天蓝色下获取最新的音频文件容器并绑定到ThumbnailDisplayControl
控件,然后当您访问该页面并按F12时,您会看到ajax请求每秒发送到您的后端并更新您的ListView。有关计时器控制的更多详细信息,请参阅here。
此外,您可以利用Azure Storage Explorer检查上传的音频文件。