IEでFileアップロード時にFileNameにフルパスが入る(C#)

複数ファイルをアップロードした際にIEからだとErrorになったので覚書き。

<input type=”file”>でファイルをアップロードした際、
C#側はfile.FileNameで「hoge.jpg」というファイル名だけが取れることを期待して書いたが、IEからだと「C:\hoge.jpg」といった感じでフルパスが来る。

var files = context.Request.Files;
HttpPostedFile file = files[1];
// IEで場合によってフルパスが入る
var fileName = file.FileName;

// 両対応するためにPath.経由でファイル名を取得する。
var fileName = Path.GetFileName(file.FileName);

なのでIEを考慮するなら一回Path.GetFileName()を経由してファイル名だけに整える必要がある。

ChromeはFileNameだけなのに、、、

参考になったURL
IE でアップロードする際のファイル名
C#
スポンサーリンク
Once and Only

コメント