0

我在 ASCX 上有一个链接,我想做的是有一个文件下载提示而不做弹出窗口。

例子:

  <a href="download.aspx">Download</a>

然后在 Download.aspx Page_Load 我有:

    Dim dataAs String = "test"

    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

这是正确的方法吗?我的另一种方法是将代码放在 ASCX 的后面

<asp:button text="download" id="theButton" />

.vb

Public Sub theButton_Click()
    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

End Sub
4

1 回答 1

-1

内容处置可以是附件或内联,例如:

Response.AddHeader("Content-Disposition", "inline")

如果您将其设为附件,浏览器通常会显示一个弹出窗口,询问用户是否要打开文件或保存文件。浏览器可以控制您返回 HTTP 响应后发生的事情。默认文件名可能是您建议的文件名,或者浏览器可能决定完全忽略您的文件名并可能使用 ascx 文件名(当我遇到它时,Firefox 将此列为错误,IE 似乎将其视为“功能”)。

但是,如果您将其设为内联,“文本/纯文本”内容类型通常会被转储到浏览器屏幕中而不会弹出。那是你要的吗?

于 2013-05-22T14:20:48.260 回答