我的 PHP 脚本有一个非常奇怪的问题。
我正在上传几个文件并让 PHP 将它们全部放在一个文件夹中。我在发送随机文件和不发送随机文件时遇到问题。所以我调试了它,我从 $_FILES[] 数组中得到了一个非常奇怪的结果。
我用3个文件试了一下。
$_FILES["addFile"]["name"]
保存 3 个文件的名称。
您希望$_FILES["addFile"]["tmp_name"]
保留 PHP 用来复制文件的 3 个临时名称,但事实并非如此。它只有一个名字。其他 2 个是空字符串,在上传时会产生错误(我禁止显示)
这很奇怪。我尝试了多种情况,但它一直在发生。这一定是我的设置甚至我的代码中的某些内容。
这是我的代码:
$i = 0;
if (!empty($_FILES['addFile'])) {
foreach($_FILES['addFile'] as $addFile) {
$fileToCopy = $_FILES["addFile"]["tmp_name"][$i];
$fileName = $_FILES["addFile"]["name"][$i];
$i++;
if(!empty($fileToCopy)){
$copyTo = $baseDir."/".$fileName;
@copy($fileToCopy, $copyTo) or die("cannot copy ".$fileToCopy." to ".$copyTo);
}
}
exit(0);
}
由于 tmp_name 为空,if-value 将为 false,因此它将跳过 die() 函数。
有谁知道可能是什么原因造成的?
更多信息:我使用的是 Windows XP,运行 WAMP 服务器。以前从未遇到过这个问题,我可以访问我尝试上传的所有地图。我认为Windows的安全设置不是问题。