我使用jQuery和隐藏的iFrame创建了一个文件上传器。这适用于我需要在PC上使用的浏览器。但是,在Android手机上测试时,我发现了以下问题。为简单起见,我正在使用简单的文件上传演示进行测试。
我正在使用Android附带的原生互联网网络浏览器打开:http://encodable.com/uploaddemo/
我在浏览器中加载页面并选择选择文件。这会在我的手机上显示能够选择文件的应用程序。我安装了Astro文件管理器,所以这是我使用的。我有一些测试图像和测试文档。如果我选择图像一切都很好,我可以成功上传图像。如果我选择一个文档,它似乎无法正确填写文件的位置(尽管它已填入文本框中),因为当我点击“开始上传”时,它会触发错误“请填写必需的项目“好像没有选择文件。
我能看到的唯一区别是用于图像与文档的路径: -content://media/external/images/media/11484/image.jpg -file:///mnt/sdcard/Test%20Files/pdf.pdf/
也许权限相关?我也尝试过FileExpert和OfficeSuite来选择文档,但同样的问题仍然存在 - 是否有其他文件浏览器传递不同的路径?
使用“content://”的文件格式:'bmp','gif','jpg','jpeg','png' 文件格式不起作用并使用“file:///”:'txt','rtf','doc','docx','pdf','tif','tiff'
任何指针,非常感谢。
答案 0 :(得分:1)
问题与访问文件路径有关。通常在jQuery中,您可以使用$(this).attr('value')
或$(this).val()
来获取文本框中的文件路径值。对于我的测试示例,图像工作正常,您可以检索文件路径,但有文档,你什么也得不到。奇。不知道为什么。因此,这意味着在通过表单发布数据时,不会为文档提交任何内容,也不会上传任何内容。