私は主に FF で作業しています。このコードは、アップロードされたアイテムのファイル名 (パスなし) を表示するのに完全に機能します。私がテストした他のすべてのブラウザー (Chrome、Safari、Opera) では、fakepath が表示されます。しかし、'fakepath' を取り除くために提案されたさまざまな方法を試してみたところ、FF は完全に機能しなくなりました。また、Chrome に適したアプローチのように見えるものでさえ、FF で壊れている場合でも、「オブジェクト オブジェクト」という奇妙なファイル名で表示されることがあります。'fakepath' の全体像は、あまり知識のないユーザーの対象ユーザーを混乱させることになるため、できればそれを取り除きたいと思います。しかし、FF は最初から私が望むように動作するので、ブラウザが != FF の場合にのみ偽パス部分を削除する方法はありますか? もしそうなら、(Object オブジェクトではなく) 実際の削除されたファイル名を取得するにはどうすればよいでしょうか?
これはFFで動作するバージョンです:
$('input[name="file"]').change(function(){
var filename = $(this).val();
$('<span class="fileshow">'+ filename +'</span>').insertAfter($(this));
});
そして、これはChromeでオブジェクトオブジェクトを取得するので、何かが間違っていますが、何がわかりません.
$('input[name="file"]').change(function(){
var filename = $(this).val(this.files && this.files.length ?
this.files[0].name : this.value.replace(/^C:\\fakepath\\/i, ''));
$('<span class="fileshow">'+ filename +'</span>').insertAfter($(this));
});
助けてくれてありがとう。