【发布时间】:2018-04-11 04:17:28
【问题描述】:
我创建了一个非常基本的多文件上传表单示例 (reference),它在台式机上完美运行,但在移动设备上却无法运行,至少在我正在测试的那些上运行。
在移动设备上(小米米4 [Android 版本:6.1] - Google Chrome/Mozilla Firefox):当我点击选择文件时,我看到这个屏幕:
如果我选择 Google 相册并选择多个文件,则只会将第一个文件插入到表单中。 如果我选择图库(本机)应用程序并选择多个文件,我会在表单上得到正确的数字,但是当我点击上传时,我会看到“Aw Snap”屏幕:
知道为什么会这样吗?
除了 Google 相册和原生应用外,我还尝试了 5 个不同的应用,最后一个 Piktures 确实有效!
请告诉我这不是应用程序...有没有办法正确获取文件?
附上代码:
<form method="post" enctype="multipart/form-data">
<input type="file" name="my_file[]" multiple>
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES['my_file'])) {
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i < $fileCount; $i++) {
?>
<p>File #<?= $i+1 ?>:</p>
<p>
Name: <?= $myFile["name"][$i] ?><br>
Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
Type: <?= $myFile["type"][$i] ?><br>
Size: <?= $myFile["size"][$i] ?><br>
Error: <?= $myFile["error"][$i] ?><br>
</p>
<?php
}
}
?>
如果你想测试:http://odedta.com/projects/jqueryfileupload/
谢谢!
【问题讨论】:
-
作为结果状态,浏览器现在内存不足,它可能有多种可能导致此问题的情况,1.您尝试上传的文件太大,2.您是否正在使用 javascript 操作文件接口?
-
@TouqeerShafi 嘿,1. 每个文件大约 80KB,我一次尝试 2-3 个。 2. 在我制作的应用程序中,我使用的是 DropzoneJS,因为我不知道出了什么问题,所以我创建了这个最简单的示例来消除外部类问题或 JS 问题,这是纯 PHP/HTML,这个错误是仍在发生...我希望也许有一个 JS 解决方案可以弥补这个错误...类似于增加原始
input[type="date"]功能的日期选择器的 JS 类 -
安卓和谷歌浏览器是什么版本?你检查过其他移动浏览器还是原生浏览器?
-
你选择什么文件?(什么格式?尝试使用两个 png/jpeg/txt/mp3/binary 文件)。作为您版本 Chrome 中的声音错误(不正确的检索和处理“Intent.ACTION_SEND_MULTIPLE”)。我读。下一个版本的 Android 已修复!
-
@odedta 我同意:Android 错误或只是报告不足的限制。过去,多个文件上传似乎一直是个问题。对于它的价值,看看this,尤其是“caniuse”链接。如果您还没有,请尝试卸载与问题相关的所有应用程序,重新启动设备,然后重新安装应用程序,以防出现异常状态并需要重新初始化。
标签: javascript php android jquery