“另存为”对话框文件名

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 类型映射扩展) 希望有帮助!

【讨论】:

以上是关于“另存为”对话框文件名的主要内容,如果未能解决你的问题,请参考以下文章

用于在另存为对话框中将工作表另存为预命名文件的 VBA 代码

文件对话框,python,另存为

返回“另存为”对话框 powerbuilder

我想在用户右键单击时更改另存为对话框文件名

文件相关操作 - 另存为

如何在不强制“另存为”对话框的情况下设置响应文件名