IE、Chromeでc:\fakepath\が表示される問題


Chromeで閲覧するWebシステムを作成していた時、
Webシステムからエクスプローラーを開き、
ファイルのアプロードしたパスを画面に表示しようとしていました。

その時に画面に表示されたのが…
c:\fakepath\sample.xlsx

これ!!!
え、fakepathってなに!?
パス取得できてないじゃん…

プチパニックとなりました。

これをどうにかできないものかといろいろと調べていましたが、
fakepathと表示されるのはIEChromeのセキュリティ上の理由らしいです。

そのためfakepathを表示させずに自分のPCのパスを表示させることは難しそうでした。
(画面に表示ができないだけで、システムの中ではパスを取得することはできました)

ファイル名のみを表示させるためには、

$('#XXX').val($(this).prop('files')[0].name);

を使用するとファイル名のみ取得できます。