“另存为”对话框文件名
Posted
技术标签:
【中文标题】“另存为”对话框文件名【英文标题】:"Save as" dialog file name 【发布时间】:2010-08-11 09:21:11 【问题描述】:我有一个正在运行的服务器和一个 Web 客户端访问它以下载文件。
当我访问时
服务器/.../我的文件/
下载名为“MyFile”的文件并显示弹出“打开,另存为”。 当我点击另存为时,建议的名称是“MyFile”。
如何将其更改为其他名称?
附言我无法将 /MyFile 更改为 /SomeOtherFile,因为此链接每次都包含另一个文件,具体取决于服务器所做的工作。因此,建议“MyFile”中的另存为毫无意义。我更愿意建议我实际下载的文件的名称。
谢谢 尤拉
【问题讨论】:
您使用什么语言、框架和服务器? 【参考方案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
【讨论】:
我的服务器是用 Java 编写的。 (我使用 Jetty)这段代码对我来说会是什么样子? @Yura,也许是这样的。否则,请发布一些您的 get-file-code。【参考方案2】:所有 web 服务器都有映射文件扩展名,如果请求已经让 web 服务器在其映射表中查找文件扩展名,如果找到,他们将其交给适当的处理程序,就像所有交给 aspnet_isapi 的 *.aspx 文件一样。 dll 并且控件已转移到该处理程序,但 .txt 或 .png 等普通文件无法通过 IIS 处理,如果您想控制它们,您应该将该文件扩展名添加到 Web 服务器映射表并将该扩展名映射到您想要的handler 然后你就可以控制它了
您可以通过谷歌搜索找到大量有用的文章(mime 类型映射扩展) 希望有帮助!
【讨论】:
以上是关于“另存为”对话框文件名的主要内容,如果未能解决你的问题,请参考以下文章