注意:未定义的偏移量:第6行的3
第6行如下:
$tmpFilePath = $_FILES['file']['tmp_name'][$i];
以下是您应该需要的所有内容:
session_start();
//Loop through each file
for($i=0; $i<count($_FILES['file']); $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['file']['tmp_name'][$i];
//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploaded_files/" . $_FILES['file']['name'][$i];
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
echo "Upload Successful!<br />";
}
}
}
答案 0 :(得分:2)
检查它是否存在:
if (isset($_FILES['file']['tmp_name'][$i]))
{
$tmpFilePath = $_FILES['file']['tmp_name'][$i];
}
答案 1 :(得分:0)
乍一看,for()循环中的代码应为:
for($i=0; $i<count($_FILES['file']['tmp_name']); $i++)
因为$_FILES['file']
中计算的项目可能与项目的计数不同
计入$_FILES['file']['tmp_name']
如果$_FILES['file']
中的项目数超过$_FILES['file']['tmp_name']
中计算的项目数,那么您的代码将触发错误,并显示未定义的偏移通知。
如果$_FILES['file']
中的项目数量少于$_FILES['file']['tmp_name']
中计算的项目数,那么您的代码将无法查看超出该初始计数的所有数据
['tmp_name']
数组中的值更高。
保持for循环的递增变量/运算符最接近您在表达式中计算的数组/子数组是最好的。
要轻松记住这一点的关键技巧是注意for循环看起来与放入变量的数组的索引/关联位置几乎相同。
for($i=0; $i<count($_FILES['file']['tmp_name']); $i++)
$tmpFilePath = $_FILES['file']['tmp_name'][$i];
看到了吗?