我使用 jQuery 和隐藏的 iFrame 创建了一个文件 uploader 。这适用于我需要在 PC 上使用的浏览器。但是,在安卓手机上测试时,我发现了以下问题。为简单起见,我正在使用一个简单的文件上传演示对此进行测试。
我正在使用 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'
任何指点,非常感谢。
最佳答案
问题与访问文件路径有关。通常在 jQuery 中,您会使用 $(this).attr('value')
或 $(this).val()
来获取文本框中的文件路径值。对于我的测试示例,图像工作正常,您可以检索文件路径,但对于文档,您什么也得不到。奇怪的。不知道为什么。因此,这意味着当通过表单发布数据时,不会为文档提交任何内容,也不会上传任何内容。
关于php - Android 选择要上传的文件 - DOC、PDF 等问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363579/