C#ASP.Net Webサイトで、使用しているクライアントにファイルを転送するには
String file_path = Server.MapPath("~/files/"+file_name);
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + file_Name);
HttpContext.Current.Response.TransmitFile(file_path);
HttpContext.Current.Response.End();
完全に機能していますが、ファイル名にスペースが含まれている場合、ダウンロードされたファイルの名前は最初の単語までしかありません。例:私のファイル名が"This is demo.txt"
の場合、ダウンロードされたファイル名は"This"
拡張子なしになります。したがって、それをダウンロードするユーザーはそのタイプを識別できません。
スペースを含むファイル名でこれが発生しないようにするにはどうすればよいですか?
使ってみました
String file_path = "'"+Server.MapPath("~/files/"+file_name)+"'";
しかし、それはうまくいきませんでした。
また、サーバー上に存在するファイル名に存在するすべてのスペースを(「_」または「-」に)置き換えたり、削除したりすることもできません。