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