代码之家  ›  专栏  ›  技术社区  ›  willvv

ASP.NET MVC文件流结果,fileDownloadName的有效字符

  •  1
  • willvv  · 技术社区  · 16 年前

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

    当文件名包含特殊字符(例如“san jos.jpg”)时会发生这种情况,但当文件名没有特殊字符(例如“san jos.jpg”)时,它会正常工作。

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

    谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   willvv    16 年前

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

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

    希望这能帮助别人。

        2
  •  1
  •   Sotiris Adrian J. Moreno    15 年前

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