我有一个正在运行的服务器和一个 Web 客户端访问它以下载文件。
当我访问
服务器/.../我的文件/
下载名为“MyFile”的文件并显示弹出“打开,另存为”。当我单击另存为时,建议的名称是“MyFile”。
如何将其更改为另一个名称?
ps 我无法将 /MyFile 更改为 /SomeOtherFile,因为此链接每次都包含另一个文件,具体取决于服务器所做的工作。因此,建议“MyFile”中的另存为毫无意义。我更愿意建议我实际下载的文件的名称。
谢谢尤拉
我有一个正在运行的服务器和一个 Web 客户端访问它以下载文件。
当我访问
服务器/.../我的文件/
下载名为“MyFile”的文件并显示弹出“打开,另存为”。当我单击另存为时,建议的名称是“MyFile”。
如何将其更改为另一个名称?
ps 我无法将 /MyFile 更改为 /SomeOtherFile,因为此链接每次都包含另一个文件,具体取决于服务器所做的工作。因此,建议“MyFile”中的另存为毫无意义。我更愿意建议我实际下载的文件的名称。
谢谢尤拉
您需要发送此标头:
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
}
所有 web 服务器都有映射文件扩展名,如果请求已经让 web 服务器在其映射表中查找文件扩展名,如果找到,他们将其交给适当的处理程序,就像所有 *.aspx 文件交给 aspnet_isapi.dll 和控制权已转移到该处理程序,但 .txt 或 .png 等普通文件无法通过 IIS 处理,如果您想控制它们,您应该将该文件扩展名添加到 Web 服务器映射表并将该扩展名映射到您想要的处理程序,然后你可以控制它
您可以通过谷歌搜索(mime 类型映射扩展)找到大量有用的文章,
希望对您有所帮助!