我遇到文件下載問題。我有一個顯示文件名和下載該文件的鏈接的網格。 這是我的網格的代碼。文件無法從文件夾下載
<asp:GridView ID="gv7" runat="server" AllowPaging="True" CssClass="tbl_green_parrot"
PageSize="5" Width="100%" AutoGenerateColumns="False" EmptyDataText="No Scheme data available" DataKeyNames="FilePath" OnPageIndexChanging="gv7_PageIndexChanging" onrowdatabound="gv7_RowDataBound">
<AlternatingRowStyle CssClass="tbl_green_parrot1" />
<FooterStyle CssClass="tbl_green_parrotfoot" />
<PagerStyle CssClass="tbl_green_parrotpager" />
<SelectedRowStyle CssClass="tbl_green_parrotselect" />
<EmptyDataRowStyle CssClass="tbl_green_parrotempty" />
<Columns>
<asp:TemplateField HeaderText="File Name">
<ItemTemplate>
<asp:HyperLink ID="lnkFile" Target="_blank" CausesValidation="false" runat="server"
Text='<%# Bind("DisplayName") %>' NavigateUrl='<%# Bind("FilePath") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Download" ItemStyle-Width="25px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<a id="lnkDLoad" href='<%# Bind("FilePath") %>' runat="server" target="_blank">
<img src="Images/download.png" alt="Download" />
</a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="25px" ></ItemStyle>
</asp:TemplateField>
</Columns>
在這裏,我綁定的文件路徑到<a>
標籤。當我將該文件放在網站的同一個根文件夾中時,此代碼正在運行。但是,當我嘗試下載文件夾內的文件時,它不會下載。
下載背後的代碼:
DataTable new_dt = new DataTable();
new_dt.Columns.Add("DisplayName");
new_dt.Columns.Add("FileName");
new_dt.Columns.Add("FilePath");
string Query = "SELECT DisplayName,FilePath,Universal From DistScheme";
dt = DataAccessLayer.DAL.getFromDataTable(Query);
string filename = "";
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow new_dr = new_dt.NewRow();
if (dt.Rows[i]["Universal"].ToString() == "False")
{
filename = DistributorID + "_" + dt.Rows[i]["FilePath"].ToString();
}
else
{
filename = dt.Rows[i]["FilePath"].ToString();
}
string filepath = Server.MapPath("Uploads/Scheme/") + filename;
if (File.Exists(filepath))
{
new_dr["DisplayName"] = dt.Rows[i]["DisplayName"].ToString();
new_dr["FileName"] = filename;
new_dr["FilePath"] = filepath;
new_dt.Rows.Add(new_dr);
}
}
}
gv7.DataSource = new_dt;
gv7.DataBind();
我該如何解決這個問題?
但如何得到這個路徑..? – raina
您可以通過您的FTP結構輕鬆檢查您的文件存儲位置。 – Saurabh
在我的代碼中,我使用Server.MapPath()方法來查找我的文件的路徑。但它給出了不可下載的文件的物理路徑。如何從代碼中獲取可下載的路徑。有沒有任何方法定義這樣做..? – raina