我在上传文件表单时遇到问题。我将在这里写一个不能在所有浏览器中运行的简单代码示例。
HTML 部分是这样的:
<form method="POST" enctype="multipart/form-data" action="match.php">
<input class="btn btn-info" name="dataset" type="file" id="dataset" />
<input class="btn btn-info" type="submit" name="submit" value="Submit" />
</form>
然后,然后在 match.php 文件中,我获取并处理该文件,例如:
if ($_FILES["dataset"]["error"] > 0 || !($_FILES["dataset"]["size"] > 0)) {
$dataset = "default.txt";
echo 'error:' . $_FILES["dataset"]["error"] . ' - filesize:' . $_FILES["dataset"]["size"];
} else {
$dataset = $_FILES["dataset"]["tmp_name"];
echo "Ok";
print_r($_FILES);
}
非常简单:如果上传过程中出现错误,我将使用默认文件(并打印一些错误信息),否则一切正常。
好吧,除了在某些浏览器中之外,这非常有效。比如我遇到了Android默认浏览器的问题(不是Chrome),Windows系统中的一些浏览器似乎也有问题(我没有自己尝试过,说实话)。
使用我打印的错误信息,看起来$_FILES["dataset"]["error"]
(输出为 0)中没有错误,但文件大小为0(仅在这些浏览器上)。
文件夹权限没有问题(我使用“default.txt”文件信息在文件夹中写入文件),php.ini设置没有问题(实际上我用相同的 txt 文件测试它是 65kb)。