私がasp.netについて理解していることから、FileUpload.FileNameはフルパスを返しますが、Firefoxではファイル名だけを返します。HTMLでエンコードされたファイル名が必要なだけなので、返された文字列からパスを削除するにはどうすればよいですか。
質問する
10735 次
3 に答える
24
Path静的クラスを使用してファイル名を取得できます。
var fileName = Path.GetFileName(somePath);
そしてそれをエンコードするためのHttpUtility静的クラス。
var encoded = HttpUtility.HtmlEncode(fileName);
于 2012-08-24T20:52:37.617 に答える
5
そのため、[ツール]->[インターネットオプション]->[セキュリティ]の下にIE設定(IE8だけでなく新しいバージョンでも)があり、ファイルのアップロードにローカルパスを含めたり除外したりできます。
そのため、フルパス情報を保持したくない場合、IEをサポートしたい場合は、パスを明示的に削除するのが最も安全です(他のブラウザーにそのような設定があるかどうかはわかりません)。
Joshが述べたように、Path.GetFileName(...)は適切なオプションです。string.SplitをLinqと組み合わせて使用することもできます。
string fileNameOnly = somePath.Split('\\').Last();
于 2014-08-15T16:36:04.990 に答える
1
Path.GetFileName(Request.Files["file"].FileName)
于 2016-10-06T19:43:56.610 に答える