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





0/5 (0投票)
这是如何列出特定目录中的文件并允许用户下载这些文件的方法。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”目录列出文件,因此您可能需要根据您的网站更改该文件夹的名称。此外,该代码可以扩展,以允许用户动态选择要列出其文件的目录名称。