1

FileStreamResultを返すアクションメソッドがあります。ダウンロードは正常に機能します。問題は、結果オブジェクトのFileDownloadNameプロパティを設定しても、一部のファイルが別の名前(具体的にはページのアドレスの最後の部分)でダウンロードされることです。私は作業中です。たとえば、「http:// localhost:5479 / Items / Edit / 277」ページでは、「277」というファイルがダウンロードされます。

これは、ファイルの名前に特別な文字が含まれている場合(「SanJosé.jpg」など)に発生しますが、名前にそのような文字が含まれていない場合(「SanJose.jpg」など)は問題なく機能します。

だから、私の質問は、ユーザーが名前に特別な文字を含むファイルをダウンロードできるようにするにはどうすればよいですか?または、それが不可能な場合は、文字列からすべての特殊文字を削除する方法がありますか、それとも作成する必要がありますか?

ありがとう

4

2 に答える 2

3

実際、私はこれを修正する方法を見つけました。

基本的に私がしなければならないことは、HttpUtility.UrlEncode メソッドを使用してファイルの名前を変換することです。ファイルがダウンロードされると、元のファイルとほぼ同じ名前になります (違いは、スペースがプラス (+) に置き換えられることです)。サイン)。

これが他の誰かに役立つことを願っています。

于 2010-06-30T17:23:57.947 に答える
1

私も同じ問題を抱えてる。より良い解決策はHttpUtility.UrlPathEncode(...)、スペースを「+」で置き換えないためです。

于 2011-06-01T10:24:58.127 に答える