0

javascriptでアップローダーを作成しようとしています。私は基本的に入力ファイルを持っています:

<input id="attachments" type="file" style="display:none; float:left; margin-right:5px;" multiple="" name="file[]">

非表示になっているため、ボタンをクリックすると、次のように入力がトリガーされます。

$(thisELement).find("#attachments").trigger("click");

そして最後に、私はこのように私の入力のオンチャッジをキャッチします:

$(thisELement).find("#attachments").change(function(e){
     console.log(this.file);

FirefoxとChromeの場合は正常に動作しますが、IE 9でテストすると、コンソールに「this.file」が表示されます。未定義です。IEが「this.file」を受け入れない理由と、どの命令を使用するかは誰にもわかりません。それは同等ですか?

前もって感謝します。

4

1 に答える 1

1

IEは、ファイルのアップロードに関してはセキュリティに厳しいことで有名です。JSを使用してファイルのアップロードをトリガーすることはできません。これは、ユーザーの操作を伴わない可能性があり、ユーザーが知らないうちにページがファイルを「盗む」ことを許可するためです。私はこれをかなり広範囲に調査しましたが、答えはほとんどそれができないということです。ネイティブのファイルアップロードコントロールを使用する必要があります。

jqueryプラグインuploadifyを使用してみてください。Flashを使用してこのセキュリティ制限を回避しますが、ブラウザのUIではなくUIに固執します。ただし、それらのUIではいくつかのカスタマイズが可能です。

于 2012-08-16T17:06:11.907 に答える