65.9K
CodeProject 正在变化。 阅读更多。
Home

显示特定文件夹中的文件并允许用户下载它们。

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL
viewsIcon

5522

这是如何列出特定目录中的文件并允许用户下载这些文件的方法。ASPX: <asp:GridView ID="GridView1"

这是如何列出特定目录中的文件并允许用户下载这些文件的方法。

ASPX

            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="2"
                ForeColor="#333333" GridLines="None" AllowPaging="True">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:LinkButton ID="lnkdownload" runat="server" Text="Download" CommandName="Download"
                                CommandArgument='<%#Eval("FullName") +";" + Eval("Name") %>'></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Name" HeaderText="File Name" />
                    <asp:BoundField DataField="Length" HeaderText="Size (Bytes)" />
                </Columns>
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#999999" />
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            </asp:GridView>

VB

   Private Sub BindGrid()
        Dim DataDirectory As String = "~/Uploads"

        Dim files() As FileInfo = New DirectoryInfo(Server.MapPath(DataDirectory)).GetFiles
        GridView1.DataSource = files
        GridView1.DataBind()


    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            BindGrid()
        End If
    End Sub

    Private Sub Downloadfile(ByVal fileName As String, ByVal FullFilePath As String)
        Response.AddHeader("Content-Disposition", "attachment; filename=" & fileName)
        Response.TransmitFile(FullFilePath)
        Response.End()
    End Sub

    Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
        If e.CommandName = "Download" Then
            Dim fileInfo() As String = e.CommandArgument.ToString().Split(";")
            Dim FileName As String = fileInfo(1)
            Dim FullPath As String = fileInfo(0)
            Downloadfile(FileName, FullPath)
        End If
    End Sub

    Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
        GridView1.PageIndex = e.NewPageIndex
        BindGrid()

    End Sub

 

注意:上述代码从“Uploads”目录列出文件,因此您可能需要根据您的网站更改该文件夹的名称。此外,该代码可以扩展,以允许用户动态选择要列出其文件的目录名称。

 

© . All rights reserved.