0

当我尝试从 blob 中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我不能让它显示。音频文件作为 blob 存储在 Azure 上“songsnippets”下的“PhotoGallery”容器中

使用 Web 表单对我来说是新事物,通常我会使用 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();
4

1 回答 1

1

当我尝试从 blob 中提取元数据时,它根本不显示。目前我可以上传一个音频文件,但是,我不能让它显示。

根据您的 ASP.NET 服务器页面中的代码,我假设您在单击submitButton按钮时上传音频文件,并使用 Timer 控件以定义的时间间隔启用部分页面更新并更新ThumbnailDisplayControl.

根据我的理解,您需要为您的指定 OnTicktimer1,并且在相关timer1_Tick事件中,您需要在 azure 容器下获取最新的音频文件并绑定到ThumbnailDisplayControl控件,然后当您访问页面并按 F12 时,您会看到ajax 请求每秒发送到您的后端并更新您的 ListView。关于 Timer 控制的更多细节,你可以参考这里

在此处输入图像描述

此外,您可以利用Azure 存储资源管理器来检查您上传的音频文件。

于 2017-10-25T06:12:16.540 回答