2016-08-28 15 views
10

<input type="file" accept="image/*"/>をChromeで使用すると、ダイアログが非常に遅く開きます(Macの10.11.6ではChromeの52.0.2743.116で10秒以上) -ビット)。入力['file'] accept = "image/*" Chromeで遅いダイアログを開く

しかし、accept="image/*"を削除すると正しくなります。そして私は自分のFacebookページを見てきました。うまくいきます。違いは?

Facebook input

スタックオーバーフローの画像のアップロードも私のクロムととても遅くなります。

Stack Overflow

何が私のChromeになりますか?私はそれが7月中...

+0

まったく同じ問題が発生しています。 (そのため、このページを検索したのです) – RnMss

+0

@ykanこれはChromeのバグとして確認されています。私の答えの更新を確認してください。幸いにも、それは今修正されました。 – shaochuancs

答えて

15

UPDATE OKですが、相手のChromeをテストしてみた2017:これは、Chromeでbugとして確認され、それが今fixedです。

このバグの根本原因は次のとおりです。Chromeのセーフブラウジング機能は、アップロードまたは保存時にファイルをチェックします。 Googleのサーバーへのインターネット接続が高速であればOKです。しかし、接続が遅いか壊れている場合は、SafeBrowsingは、チェックが完了するかタイムアウトになるまで数秒間Chromeをハングします。

MIMEタイプimage/png, image/jpeg, image/gifセーフブラウジングのホワイトリストにあるため、この問題を回避しますaccept="image/png, image/jpeg, image/gif"を使用して - 何のチェックは必要ありません。ただし、accept="image/*"またはaccept=".apk"の場合はホワイトリストに記載されていないため、セーフブラウジングがクロージャをチェックしてハングします。

このバグはfixedです。アップロード時のチェックをスキップしてください。

注:上記の情報は、@ cute_ptrの解答に触発されたWang Leiによって書かれた中国語articleから入手できます。 Wang Leiに感謝し、私は@ cute_ptrの答えがアップヴォートに値すると思う。


UPDATE:@ xiefeiさんのコメントのおかげで、最終的な回避策は次のようになります。 ​​。必要に応じて、他のイメージのMIMEタイプを追加することができます。


このバグは私のマシンで再現されます:Mac + Chrome + <input type="file" accept="image/*">accept属性が使用されていると、Windows環境や他のブラウザで再現されないため、Mac上のChromeのバグのようです。

+0

いいえ 'name'属性を追加してもこのバグは回避できません。 – xiefei

+0

このバグは、いくつかの条件の組み合わせで表示されることがあります。ソリューション/回避策を見つける1つの方法は、「画像のアップロード」の動作がOKであるWebページを見つけて、自分のHTMLコードと自分のHTMLコードを比較することです。通常、HTMLコードの違いによって答えが得られます。 – shaochuancs

+0

@xiefei 'name'属性が役に立たない他のMac + Chrome環境でこのバグを再現しました。 1つの回避策が考え出されます:image/*ではなく、特定のイメージのMIMEタイプを使用してください。つまり、 ''です。 – shaochuancs

1

は、私は、少なくとも私のマシン上で、その理由を発見したかもしれないと思う:

私のインターネット接続がオンになっているとき、それは、高速なファイルダイアログを開き、私はそれをオフにするとき、それは私はターン、遅いですもう一度やり直してください。

したがって、インターネット接続がオンになっているときにファイルダイアログを開き、違いがあるかどうかを確認してください。それは私のために働いた。

+0

を搭載したOSX 10.12でこのバグが引き続き表示されています。Chromeを更新して問題が解決しました。私の場合、私のインターネット接続は常にオンになっています... – ykan

+1

@ykan多分あなたのインターネット接続がGoogleのサーバーに遅くなったり壊れていましたか? – shaochuancs

0

最高の答えから、これはクロムのバグであり、修正する準備ができていることがわかっています。今日(2017/08/23)まで、chrome 60.0.3112.101はまだこのバグを修正していません。しかし、最新のクロム・カナリア(62.0.3194.0)はそれを修正しました。

関連する問題