web-dev-qa-db-ja.com

Androidブラウザは入力要素を介してファイルを選択した後、ページを更新します

ユーザーが画像ファイルをサーバーにアップロードできるように、タイプ 'file'の入力要素を含むモバイルWebページがあります。このページは、iOS、およびChromeブラウザのNexus4(Android 4.2.1)で正常に機能します。

デフォルトのブラウザでSamsungS3(Android 4.0.4)を使用すると、[ファイルの選択]ボタンをクリックすると、期待どおりに画像選択ダイアログが開きますが、画像を選択してダイアログを閉じると、Webページが更新されるため、選択した画像を失います。他の誰かがこの行動を見たことがありますか?回避策の提案はありますか?

私が使用している入力要素はかなり標準的で、次のようになります。

<input id="addPhoto" type="file" accept="image/*"/>

'accept'属性がなくても、同じ問題が発生します。

32
codebox

この問題を見てください:

https://code.google.com/p/Android/issues/detail?id=53088

基本的に、起こっているように見えるのはこれです:

  • Androidには、ファイル選択ツールまたはカメラアプリに使用できる十分なメモリがありません。

  • ブラウザを閉じることでメモリを解放します

  • ファイルチューザー/カメラを閉じると、ブラウザーが再び開かれ、ページの更新がトリガーされます。これにより、ファイル選択の演習全体が役に立たなくなります。

これはブラウザベースのソリューションの制御を超えているように思えますが、この仮定で間違っていることが証明されることを望んでいます。

23
Douwe

Andriod2.3.6の電話でも同じ問題が発生しています。私の同僚の1人は彼の電話に問題がありません(それが何を実行しているか思い出せません)。彼はそれが記憶の問題かもしれないと示唆した。電話に十分なメモリがない場合、ブラウザは画像を選択した後に実際にページをリロードすることを余儀なくされる可能性があり、それは目的を無効にします。私はまだこれが問題であることを確認することができませんでした、しかし私の電話は彼よりかなり少ない利用可能なメモリを持っています。

2
lehket