Download &引用;另存为;对话框文件名

Download &引用;另存为;对话框文件名,download,savefiledialog,Download,Savefiledialog,我有一个正在运行的服务器和一个访问它下载文件的web客户端 当我访问 服务器/../MyFile/ 将下载名为“MyFile”的文件,并显示一个弹出窗口“打开,另存为”。 单击“另存为”时,建议的名称为“MyFile” 我怎样才能把它换成另一个名字 p、 我无法将/MyFile更改为/SomeOtherFile,因为此链接每次都包含另一个文件,具体取决于服务器完成的工作。因此,建议“MyFile”在另存为中毫无意义。我更愿意提出我实际下载的文件的名称 谢谢 Yura您需要将此标题与之一起发送:

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

当我访问

服务器/../MyFile/

将下载名为“MyFile”的文件,并显示一个弹出窗口“打开,另存为”。 单击“另存为”时,建议的名称为“MyFile”

我怎样才能把它换成另一个名字

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

谢谢
Yura

您需要将此标题与之一起发送:

content-disposition: attachment; filename="somefilename.ext"
在Asp.Net中,它如下所示。但您使用的是什么语言、框架和服务器

context.Response.AddHeader("content-disposition", "attachment; filename=\"somefilename.txt\"");
如果您使用Javaservlet,它是这样的:(有一段时间没有使用Java)


所有web服务器都有映射文件扩展名,如果请求在其映射表中查找了该文件扩展名,如果找到了,则会将其交给相应的处理程序,就像所有交给aspnet_isapi.dll的*.aspx文件一样,并且控件已传递给该处理程序,但普通文件如.txt,或者.png不处理IIS如果要控制IIS,应将该文件扩展名添加到web服务器映射表,并将该扩展名映射到所需的处理程序,然后才能控制它

您可以通过谷歌搜索(mime类型映射扩展)找到大量有用的文章

希望有帮助

您使用什么语言、框架和服务器?我的服务器是用Java编写的。(我使用Jetty)这段代码对我来说是什么样子?@Yura,也许是这样的。否则,发布一些get文件代码。
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
}