2013-01-11 21 views
30

Ho una pagina Web mobile che include un elemento di input di tipo "file", per consentire agli utenti di caricare file di immagine su un server. La pagina funziona perfettamente su iOS e su un Nexus 4 (Android 4.2.1) nel browser Chrome.Il browser Android aggiorna la pagina dopo aver selezionato il file tramite l'elemento di input

Quando utilizzo un Samsung S3 (Android 4.0.4) con il browser predefinito facendo clic sul pulsante "Scegli file" apre la finestra di dialogo di selezione immagine come previsto, tuttavia dopo aver scelto un'immagine e chiuso la finestra di dialogo la pagina Web viene aggiornato, quindi perdo l'immagine selezionata. Qualcun altro ha visto questo comportamento? Qualche suggerimento per una soluzione alternativa?

L'elemento di input che sto usando è abbastanza standard, e si presenta così:

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

Anche senza il 'accettare' attributo ottengo lo stesso problema.

+0

Ho lo stesso problema. Quando seleziono un file e chiudo la pagina della finestra di dialogo viene aggiornata ma se seleziono di nuovo funziona. Non so qual è il problema con il browser predefinito di androidi. Funziona bene in Opera Mobile e Chrome –

risposta

22

Date un'occhiata a questo problema:

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

In sostanza, ciò che sembra accadere è questo:

  • Android non dispone di memoria sufficiente per il file-chooser o fotocamera app.

  • E 'libera la memoria chiudendo il browser

  • Dopo che il selettore di file/fotocamera viene chiuso il browser si apre ancora una volta, innescando un aggiornamento della pagina, che rende l'intero file scegliendo esercizio inutile.

Mi sembra che questo è fuori del controllo di qualsiasi soluzione basato su browser ma mi piacerebbe essere smentiti su questo presupposto.

+0

* hai trovato qualche soluzione per questo problema ?? * Ho provato su m.facebook.com, funziona perfettamente. Qualche idea su cosa ha fatto Facebook per risolvere questo problema? –

+0

Sì, è basato su os. Testato su Chrome, FF, ecc. Su 1 GB di RAM e tutti i browser stanno facendo la stessa cosa .. Chrome ti dà anche un avviso RAM ma ancora nessuna correzione :( – zzart

+0

Mi chiedo se qualcuno abbia già trovato una soluzione a questo? Posso vedere che puoi caricare immagini su http://www.putmeinthestory.com/personalized-books/a-halloween-scare-at-my-house.html senza aggiornare la pagina, quindi deve esserci un rimedio – Adrian

-7

Si potrebbe provare questo metodo JQuery: http://blueimp.github.com/jQuery-File-Upload/

It looks nice too

Uploadify sembra promettente: http://www.uploadify.com/

Ecco una demo di esso: http://www.uploadify.com/demos/

Credo che il problema non è il tuo codice , ma il browser Android predefinito che stai utilizzando.

+0

Sai se queste librerie affrontano il particolare problema descritto nella domanda? – codebox

+0

Vedere il commento nella risposta di Alpay (blueimp non risolve il problema) – codebox

+0

Ho visto il problema con jQuery File Upload e con Plupload, anche se il widget di UI jQuery per Plupload sembra averlo fatto meno. –

2

Sto riscontrando lo stesso problema su un telefono con Andriod 2.3.6. Uno dei miei colleghi non ha il problema sul suo telefono (non riesco a ricordare cosa sta funzionando). Ha suggerito che potrebbe essere un problema di memoria. Se il telefono non ha abbastanza memoria disponibile, il browser potrebbe essere effettivamente costretto a ricaricare la pagina dopo aver selezionato l'immagine, il che vanifica lo scopo. Non sono ancora riuscito a confermare che questo è il problema, ma il mio telefono ha una memoria molto meno disponibile della sua.