我有一个返回结果的操作方法,下载工作正常,问题是虽然我设置了FileStreamResult对象的FileDownloadName属性,但一些文件是用另一个名称(特别是我正在处理的页面地址的最后一部分)下载的。例如,在页面"http://localhost:5479/Items/Edit/277“中,它将下载名为”277“的文件)。
当文件名包含特殊字符(例如"San José.jpg"),但当名称没有这样的字符时,它工作得很好(例如"San Jose.jpg")。
因此,我的问题是,如何允许用户下载名称中包含特殊字符的文件?或者,如果不可能,有没有一种方法可以从字符串中删除所有特殊字符,或者我必须创建一个?
谢谢
发布于 2010-07-01 01:23:58
实际上,我刚刚找到了一个解决这个问题的方法。
基本上我要做的是使用HttpUtility.UrlEncode方法来转换文件的名称,当文件下载时,它将获得与原始文件几乎相同的名称(不同之处在于用加号(+)替换的空格)。
希望这对其他人有帮助。
发布于 2011-06-01 18:24:58
我也有同样的问题。一个更好的解决方案是HttpUtility.UrlPathEncode(...),因为它不会用'+‘代替空格。
https://stackoverflow.com/questions/3151636
复制相似问题