現在選択されているファイルの名前を表示する必要があります(<input type="file">
要素内)。
すべて順調ですが、唯一の問題は、このような文字列が表示されてしまうことです "C:fakepath \C:typog_rules.pdf" という文字列が表示されることです(input要素の値として自動的に設定されます)。
で分割しようとすると、スラッシュがエスケープされていないために失敗します。また、スラッシュのマッチングや置換も失敗します。これを回避する方法はありますか?少なくともOperaとIEで動作する必要があります(他のブラウザではFileReaderが使えるので)。
例えば、入力として"C:\typog_rules.pdf"を取得していて、出力として"typog_rules.pdf"を取得したい場合です。
セキュリティ上の理由から、<input type="file" />
要素で参照されるファイルの実際のフルパスを取得することはできません。
この質問ではすでに言及されており、このトピックに関する他のStack Overflowの質問にもリンクされています。
string = string.split("\\");
JavaScriptでは、バックスラッシュは改行などの特殊文字をエスケープするために使用されます。リテラルのバックスラッシュを使用する場合は、ダブルバックスラッシュを使用する必要があります。
つまり,2つのバックスラッシュにマッチさせたい場合は,4つのバックスラッシュを使用する必要があります。例えば,alert("\\\\")
は,バックスラッシュ2個を含むダイアログを表示します。