警告:为第265行的D:\server\htdocs\skyk\admin\manage-work.php中的foreach()提供的参数无效

警告:为第265行的D:\server\htdocs\skyk\admin\manage-work.php中的foreach()提供的参数无效,php,Php,我想上传多个文件,在单个输入上使用“子文件”的名称 下面是php代码 $uploads_dir = "work/"; foreach ($_FILES["subfile"]["name"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["subfile"]["tmp_name"][$key]; $name = $_FILES["subfile"]["

我想上传多个文件,在单个输入上使用“子文件”的名称

下面是php代码

  $uploads_dir = "work/";
foreach ($_FILES["subfile"]["name"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["subfile"]["tmp_name"][$key];
        $name = $_FILES["subfile"]["name"][$key];

  $pic12="work/";

        move_uploaded_file($tmp_name, "$uploads_dir/$name");
 // $insertalbumimage=mysql_query("INSERT INTO `gallery`(`image`, `albumid`) VALUES ('$pic12','$album')");

    }
}

我已经尝试了
if(isset($\u FILES['subfiles]]){}

上载多个文件,您需要执行以下操作:

  • 输入名称必须定义为数组,即name=“inputName[]”
  • 输入元素必须有multiple=“multiple”或只有multiple
  • 在PHP文件中使用语法“$\u FILES['inputElemName']['param'][index]”
  • 查找空文件名和路径,数组可能包含空字符串
下面是一个糟糕的示例(仅显示相关代码)

HTML:
PHP:
//循环浏览每个文件

对于($i=0;$i),为了确保为foreach提供了正确的数据类型,您可以先检查变量的数据类型:

if(!empty($_FILES["subfile"]["name"]) && is_array($_FILES["subfile"]["name"])){
   foreach ($_FILES["subfile"]["name"] as $key => $error) {
       //etc ...............
   }
}

这样,您就可以确保防止出现显示表单html时出现的错误。我怀疑这是因为您没有
name=“subfile[]”
Show
print\r($\u文件);
if(!empty($_FILES["subfile"]["name"]) && is_array($_FILES["subfile"]["name"])){
   foreach ($_FILES["subfile"]["name"] as $key => $error) {
       //etc ...............
   }
}