2013-01-11 72 views
30

我有一個移動網頁,其中包含一個'文件'類型的輸入元素,允許用戶將圖像文件上傳到服務器。該頁面在iOS和Chrome瀏覽器中的Nexus 4(Android 4.2.1)上正常工作。Android瀏覽器在通過輸入元素選擇文件後刷新頁面

當我使用三星S3(Android 4.0.4)與默認瀏覽器點擊'選擇文件'按鈕打開圖像選擇對話框如預期,但是當我選擇一個圖像並關閉對話框網頁獲取刷新,所以我失去了被選中的圖像。有沒有其他人看到過這種行爲?任何解決方法的建議?

,我使用的輸入元素是相當標準,而且看起來是這樣的:

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

即使沒有「接受」屬性,我得到了同樣的問題。

+0

我有同樣的問題。當我選擇一個文件並關閉對話框頁面得到刷新,但如果我再次選擇它的作品。我不知道androids默認瀏覽器有什麼問題。它在Opera Mobile和Chrome中運行正常 –

回答

22

看一看一個這樣的問題:

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

基本上,似乎發生的事情是這樣的:

  • Android不具有足夠的可用內存的文件選擇或相機應用。

  • 它通過關閉瀏覽器

  • 文件選擇器/攝像機關閉瀏覽器再次被打開後,觸發頁面刷新,這使得整個文件選擇鍛鍊沒用釋放內存。

在我看來,這是超越了任何基於瀏覽器的解決方案的控制,但我很樂意被證明是錯誤的這個假設

+0

*你有沒有找到解決這個問題的任何解決方案? *我在m.facebook.com測試,它工作正常。任何想法的Facebook做了什麼來解決這個問題? –

+0

是的,它是基於操作系統的。測試Chrome,FF等1GB RAM設備和所有瀏覽器都做同樣的事情。Chrome甚至提供內存警報,但仍然沒有修復:( – zzart

+0

只是想知道有人找到了這個解決方案嗎?我可以看到你可以上傳圖片在http://www.putmeinthestory.com/personalized-books/a-halloween-scare-at-my-house.html沒有刷新頁面,所以必須有一個解決方法 – Adrian

-7

你可以試試這個jQuery方法:http://blueimp.github.com/jQuery-File-Upload/

It looks nice too

Uploadify也看起來很有希望:http://www.uploadify.com/

下面是它的一個演示:http://www.uploadify.com/demos/

我覺得這個問題是不是你的代碼,但是您使用的是默認的Android瀏覽器。

+0

您是否知道這些庫是否解決了問題中描述的特定問題? – codebox

+0

查看Alpay的回答評論(blueimp沒有解決問題) – codebox

+0

我已經看到jQuery文件上傳和Plupload的問題,儘管Plupload的jQuery UI部件似乎至少在做這件事。 –

2

我在Andriod 2.3.6手機上遇到同樣的問題。我的一位同事在他的手機上沒有問題(無法回想起正在運行的內容)。他建議這可能是一個記憶問題。如果手機沒有足夠的可用內存,瀏覽器實際上可能會在選擇圖片後被迫重新加載頁面,這會破壞目的。我還沒有能夠確認這是問題所在,但我的手機的可用內存比他的少得多。

相關問題