Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用foreach从生成的表单上载文件_Php_Mysql_Arrays_File_Foreach - Fatal编程技术网

Php 使用foreach从生成的表单上载文件

Php 使用foreach从生成的表单上载文件,php,mysql,arrays,file,foreach,Php,Mysql,Arrays,File,Foreach,html端 <form method="POST" action="" enctype="multipart/form-data"> <input type="file" id="site_header_picture" name="param_file[site_header_picture]" /> <input type="file" id="site_logo" name="param_file[site_logo]" /> <inp

html端

<form method="POST" action="" enctype="multipart/form-data">
  <input type="file" id="site_header_picture" name="param_file[site_header_picture]" />
  <input type="file" id="site_logo" name="param_file[site_logo]" />
  <input type="submit" value="Save change" />
</form>
看来,这是一个好消息!empty返回false,并且$_FILE['param_FILE']始终为空

该名称将在一段时间后生成,将来可能会有更多的文件输入

有人能帮我吗?谢谢

试试这个:


实际上$\u文件是一个数组,您需要检查它是否为空或是否使用空。

也许,您不了解在提交带括号的名称时PHP是如何构造您的$\u文件数组的。出于某种原因,PHP以一种不明显的方式实现了这一点

使用var_dump$文件。这是您发布的表单的示例输出

array (size=1)
  'param_file' => 
    array (size=5)
      'name' => 
        array (size=2)
          'site_header_picture' => string 'tests.png' (length=9)
          'site_logo' => string 'Untitled.png' (length=12)
      'type' => 
        array (size=2)
          'site_header_picture' => string 'image/png' (length=9)
          'site_logo' => string 'image/png' (length=9)
      'tmp_name' => 
        array (size=2)
          'site_header_picture' => string 'C:\Windows\Temp\php2432.tmp' (length=27)
          'site_logo' => string 'C:\Windows\Temp\php2443.tmp' (length=27)
      'error' => 
        array (size=2)
          'site_header_picture' => int 0
          'site_logo' => int 0
      'size' => 
        array (size=2)
          'site_header_picture' => int 219168
          'site_logo' => int 178288
有些人编写助手函数来重新排列数组中的$\u文件。不过,强烈建议您使用现代PHP框架,这些框架具有处理此问题的内置类和方法


如果$\u文件为空,请使用Microsoft Network Monitor或Chrome Developer工具检查文件是否确实传输到服务器。此外,web服务器可能会禁止您的文件;所以,试着先发布小图片,然后学习如何在web服务器上配置文件上载。

啊哈,没人注意到我写的是文件而不是文件。。。。该死的,我应该停下来抄过去

$filename=$_FILES['param_file[site_logo]']['name'];
$filename1=$_FILES['param_file[site_header_picture]['name'];

if(empty($filename) || empty($filename1))
{
echo "Please Select Your files first";
exit();
}
else{
 foreach($_FILES['param_file']['tmp_name'] as $key =>$tmp_name)
     {

    if(!(is_uploaded_file($_FILES['param_file']['tmp_name'][$key])))
    {
      die("unable to upload file");
      exit();   
    }

           if(move_uploaded_file($_FILES['param_file']['tmp_name'][$key],$path))

            {   
              //$path=path where you wanna upload your files
             //your data base query goes here..
            }

     }
谢谢大家

if(!empty($_FILES['param_file'])) {

    $uploaddir = '../uploads/parameters/';
    $all_file_array = $_FILES['param_file'];

foreach($all_file_array['name'] as $key => $value)
    {
        $param_name = $key;
        $param_value =  $value;
        //do stuff

    }

}

尝试检查空的$u文件['param_FILE']!空的$_文件['param_FILE']没有任何意义我的意思是检查$_文件['param_FILE']是否不是空的。所以我可能不明白。。。我知道如何上传文件,谢谢。但你似乎没有读我所有的问题。所有文件输入均自动生成。所以我不知道会有多少输入,也不知道它们的名字,不管输入是如何生成的。var_dump始终有效。与我们共享其示例输出。若要打印文件名,您必须在$\u FILE['param\u FILE']['name']上迭代。在$_FILE['param_FILE']上迭代是毫无意义的。foreach$_文件['param_FILE']['name']作为$inputName=>$fileName echo$fileName,PHP_EOL;
$filename=$_FILES['param_file[site_logo]']['name'];
$filename1=$_FILES['param_file[site_header_picture]['name'];

if(empty($filename) || empty($filename1))
{
echo "Please Select Your files first";
exit();
}
else{
 foreach($_FILES['param_file']['tmp_name'] as $key =>$tmp_name)
     {

    if(!(is_uploaded_file($_FILES['param_file']['tmp_name'][$key])))
    {
      die("unable to upload file");
      exit();   
    }

           if(move_uploaded_file($_FILES['param_file']['tmp_name'][$key],$path))

            {   
              //$path=path where you wanna upload your files
             //your data base query goes here..
            }

     }
if(!empty($_FILES['param_file'])) {

    $uploaddir = '../uploads/parameters/';
    $all_file_array = $_FILES['param_file'];

foreach($all_file_array['name'] as $key => $value)
    {
        $param_name = $key;
        $param_value =  $value;
        //do stuff

    }

}