我有一个移动网页,其中包含“文件”类型的输入元素,以允许用户将图像文件上传到服务器。该页面适用于iOS以及Chrome浏览器中的Nexus 4(Android 4.2.1)。
当我使用Samsung S3(Android 4.0.4)和默认浏览器时,单击“选择文件”按钮会按预期打开图像选择对话框,但是在我选择图像并关闭对话框后,网页会刷新,所以我失去了被选中的图像。有没有人见过这种行为?有关解决方法的任何建议吗?
我使用的输入元素是相当标准的,看起来像这样:
<input id="addPhoto" type="file" accept="image/*"/>
即使没有'accept'属性,我也会遇到同样的问题。
答案 0 :(得分:23)
看看这个问题:
https://code.google.com/p/android/issues/detail?id=53088
基本上,似乎正在发生的是:
Android没有足够的内存供文件选择器或相机应用程序使用。
通过关闭浏览器释放内存
文件选择器/摄像机关闭后,浏览器再次打开,触发页面刷新,这使得整个文件选择练习无效。
在我看来,这超出了任何基于浏览器的解决方案的控制范围,但我希望在此假设上被证明是错误的。
答案 1 :(得分:2)
我在使用Andriod 2.3.6的手机上遇到了同样的问题。我的一位同事在他的手机上没有问题(无法回忆起正在运行的内容)。他认为这可能是一个记忆问题。如果手机没有足够的可用内存,浏览器实际上可能会在选择图片后被迫重新加载页面,这会破坏目的。我还没有确认这是问题所在,但我的手机内存确实比他的内存少得多。
答案 2 :(得分:-7)
您可以尝试使用此JQuery方法:http://blueimp.github.com/jQuery-File-Upload/
Uploadify看起来也很有希望:http://www.uploadify.com/
以下是它的演示:http://www.uploadify.com/demos/
我认为问题不是您的代码,而是您正在使用的默认Android浏览器。