1

我有一个返回 FileStreamResult 的操作方法,下载工作正常,问题是虽然我设置了结果对象的 FileDownloadName 属性,但有些文件是用另一个名称下载的(特别是页面地址的最后一部分我正在处理。例如,在“ http://localhost:5479/Items/Edit/277 ”页面中,它将下载一个名为“277”的文件)。

当文件名包含特殊字符(例如“San José.jpg”)时会发生这种情况,但当文件名没有此类字符时(例如“San Jose.jpg”),它就可以正常工作。

所以,我的问题是,我如何允许用户下载名称中带有特殊字符的文件?或者,如果不可能,是否有一种方法可以从字符串中删除所有特殊字符,还是我必须创建一个?

谢谢

4

2 回答 2

3

其实我只是找到了解决这个问题的方法。

基本上我要做的是使用 HttpUtility.UrlEncode 方法来转换文件的名称,当文件被下载时,它将获得与原始文件几乎相同的名称(不同之处在于空格替换为加号(+)符号)。

希望这对其他人有帮助。

于 2010-06-30T17:23:57.947 回答
1

我也有同样的问题。更好的解决方案是HttpUtility.UrlPathEncode(...)因为它不会用“+”替换空格。

于 2011-06-01T10:24:58.127 回答