我有一个允许上传和下载文件的旧版应用程序。这些文件以 SQL 数据库中的文件名存储在磁盘上。为了允许用户重复文件名,数据库存储用户原始文件名和唯一名称。这些文件显示在 .NET 转发器中,命令参数提供两个文件名(原始的和唯一的)。下载文件后,下面的代码使用原始名称将文件提供给用户。
在带有 Chrome、IE、FFox 的 PC 上一切正常。对于 Mac 用户,当他们应该只获得 FileName.ext 时,他们会获得 FileName.ext.jpeg
我不是很精通Mac的东西。我可以对 ContentType 或 Content-Dispositon 做些什么来为少数 Mac 用户解决这个问题,而不影响我庞大的 PC 用户群?
这是使用原始名称重命名存储在服务器上的文件的代码:
LinkButton btn = (LinkButton)(sender);
string sURL = "";
string sFileName = btn.CommandArgument;
string sOriginalFileName = sFileName.Substring(0, sFileName.LastIndexOf("~"));
string sServerFileName = sFileName.Substring(sFileName.LastIndexOf("~") + 1); ;
sURL = sResourceRoot + "\\" + sServerFileName;
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + sOriginalFileName);
Response.TransmitFile(Server.MapPath(@"~/" + sURL));
Response.End();