私は今日問題に遭遇しました。私にとっては奇妙ですが、C#分野の専門家にとってはそうではないかもしれません。
私はこのように呼ばれる関数を持っていますDownload
(コードの一部!)
public void Download (string path){
HttpContext.Current.Response.ContentType = "application/octet-stream";
try {
....//process a 'filePath' variable using the 'path' parameter
using ( FileStream sourceFile = new FileStream( filePath, FileMode.Open ) ) {
...
HttpContext.Current.Response.AddHeader( "Content-Disposition", "attachment; filename=" + Path.GetFileName( filePath ) );
HttpContext.Current.Response.AddHeader( "Content-Length", fileSize.ToString() );
HttpContext.Current.Response.BinaryWrite( getContent );
}
...
}
path
/変数に記載されて保存されているファイル名に次filePath
のようなスペースが含まれている場合
PR SimpleTest.xls
ダウンロードボックスにはPR
、何も追加されていないようなファイル名が含まれています。
そのファイル名にスペースが含まれていない場合( のようにPR_SimpleTest.xls
)、ヘッダーが付属してPR_SimpleTest.xls
おり、そのようにダウンロードできます (完全なファイル名に拡張子が表示されます)。
ファイル名にスペースが含まれている場合の問題を解決する解決策はありますか?