33

我有一个包含“文件”类型的输入元素的移动网页,以允许用户将图像文件上传到服务器。该页面在 iOS 和 Chrome 浏览器中的 Nexus 4 (Android 4.2.1) 上运行良好。

当我使用带有默认浏览器的三星 S3(Android 4.0.4)时,单击“选择文件”按钮会按预期打开图像选择对话框,但是在我选择图像并关闭对话框后,网页会刷新,所以我丢失选择的图像。有没有其他人看到过这种行为?任何解决方法的建议?

我使用的输入元素是相当标准的,看起来像这样:

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

即使没有“接受”属性,我也会遇到同样的问题。

4

3 回答 3

25

看看这个问题:

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

基本上,似乎正在发生的事情是这样的:

  • Android 没有足够的内存供文件选择器或相机应用使用。

  • 它通过关闭浏览器来释放内存

  • 关闭文件选择器/相机后,再次打开浏览器,触发页面刷新,这使得整个文件选择练习无用。

在我看来,这超出了任何基于浏览器的解决方案的控制范围,但我希望在这个假设上被证明是错误的

于 2013-05-15T14:39:56.990 回答
2

我在使用 Andriod 2.3.6 的手机上遇到了同样的问题。我的一位同事在他的手机上没有问题(不记得正在运行什么)。他认为这可能是内存问题。如果手机没有足够的可用内存,浏览器实际上可能会在选择图片后被迫重新加载页面,这与目的不符。我还不能确认这是问题所在,但我的手机的可用内存确实比他的少得多。

于 2013-01-28T21:40:03.997 回答
-8

你可以试试这个 JQuery 方法:http ://blueimp.github.com/jQuery-File-Upload/

看起来也不错

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

这是它的演示:http ://www.uploadify.com/demos/

我认为问题不在于您的代码,而在于您使用的默认 Android 浏览器。

于 2013-01-14T18:19:24.407 回答