【发布时间】:2014-07-28 17:39:20
【问题描述】:
我正在尝试下载 pdf 文件,我正在使用 e.CommandArgument 传输文件,但我想为文件添加不同的标题,因为我的文件名附加了 GUID,因此 e.CommandArgument 也有 GUID 和因此,当下载文件时,它带有 GUID,我不希望下载文件上有 GUID。那么我的 Content-Disposition Header 应该发生什么变化?
我将不带 GUID 的文件名存储在列名为 RecieptFileName 的数据库中,所以如果有人能告诉我,我应该在我的代码中更改什么以下载只有文件名而没有附加 GUID 的文件。
这是我的 aspx 代码:
<asp:TemplateField HeaderText="Receipt" SortExpression="Receipt">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Download" CommandArgument='<%# Bind("filename") %>' Text='<%# Bind("ReceiptFileName") %>' ></asp:LinkButton> //I want to download file with this LinkButton text i.e. ReceiptFileName
</ItemTemplate>
</asp:TemplateField>
代码:
protected void gridContributions_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Download")
{
Response.Clear();
Response.ContentType = "application/pdf";
Response.AppendHeader("content-disposition", "attachment; Filename=" + e.CommandArgument + ".pdf");
Response.TransmitFile(Server.MapPath("~/Match/Reciepts/") + e.CommandArgument);
Response.End();
}
}
【问题讨论】:
-
更改
content-disposition标头。 -
是的,我知道我必须改变它,但你有什么建议我应该改变它吗?