0

我有一个正在运行的服务器和一个 Web 客户端访问它以下载文件。

当我访问

服务器/.../我的文件/

下载名为“MyFile”的文件并显示弹出“打开,另存为”。当我单击另存为时,建议的名称是“MyFile”。

如何将其更改为另一个名称?

ps 我无法将 /MyFile 更改为 /SomeOtherFile,因为此链接每次都包含另一个文件,具体取决于服务器所做的工作。因此,建议“MyFile”中的另存为毫无意义。我更愿意建议我实际下载的文件的名称。

谢谢尤拉

4

2 回答 2

1

您需要发送此标头:

content-disposition: attachment; filename="somefilename.ext"

在 Asp.Net 中如下所示。但是您使用的是什么语言、框架和服务器?

context.Response.AddHeader("content-disposition", "attachment; filename=\"somefilename.txt\"");

如果您使用 Java servlet,它是这样的:(有一段时间没有使用 Java)

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    response.setHeader("content-disposition", "attachment; filename=\"somefilename.ext\"");

    //Write the file to response and maybe set content type
}
于 2010-08-11T09:25:20.597 回答
0

所有 web 服务器都有映射文件扩展名,如果请求已经让 web 服务器在其映射表中查找文件扩展名,如果找到,他们将其交给适当的处理程序,就像所有 *.aspx 文件交给 aspnet_isapi.dll 和控制权已转移到该处理程序,但 .txt 或 .png 等普通文件无法通过 IIS 处理,如果您想控制它们,您应该将该文件扩展名添加到 Web 服务器映射表并将该扩展名映射到您想要的处理程序,然后你可以控制它

您可以通过谷歌搜索(mime 类型映射扩展)找到大量有用的文章,
希望对您有所帮助!

于 2010-08-11T10:24:55.637 回答