gpt4 book ai didi

c# - Mac 上的 .net 文件下载仅附加 .JPEG

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:46 24 4
gpt4 key购买 nike

我有一个允许上传和下载文件的旧版应用程序。这些文件存储在磁盘上,SQL 数据库中的文件名。为了允许来自用户的重复文件名,数据库存储用户原始文件名和唯一名称。这些文件显示在 .NET 转发器中,命令参数提供两个文件名(原始文件名和唯一文件名)。下载文件后,下面的代码会以原始名称向用户提供文件。

在 PC 上使用 Chrome、IE、FFox 一切正常。对于 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();

最佳答案

通常,您应该在 Content-Disposition header 中引用您的文件名 -- see here .另请注意,意外的文件名字符可能会在您的问题中发挥作用。可能值得使用内置的 .NET ContentDispositionHeaderValue 类来帮助创建 header 。

试试这个 - 它对您列出的所有其他浏览器也应该是安全的。

Response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = sOriginalFileName };

关于c# - Mac 上的 .net 文件下载仅附加 .JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51864541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com