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のバグのようです。
まったく同じ問題が発生しています。 (そのため、このページを検索したのです) – RnMss
@ykanこれはChromeのバグとして確認されています。私の答えの更新を確認してください。幸いにも、それは今修正されました。 – shaochuancs