Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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-命名表单上的多个文件输入字段_Php_Html_Forms_File - Fatal编程技术网

php-命名表单上的多个文件输入字段

php-命名表单上的多个文件输入字段,php,html,forms,file,Php,Html,Forms,File,我想在一个表单上有多个可以插入文件的字段 我有下面的脚本,但我希望能够识别插入的文件在保存的名称中属于哪个字段 <form action="" method="post" enctype='multipart/form-data' id="form" name="form"> Input 1<input type="file" name="upload[]" > Input 2<input type="file" name="upload[]" >

我想在一个表单上有多个可以插入文件的字段

我有下面的脚本,但我希望能够识别插入的文件在保存的名称中属于哪个字段

<form action="" method="post" enctype='multipart/form-data' id="form" name="form">

  Input 1<input type="file" name="upload[]" >
  Input 2<input type="file" name="upload[]" >
  Input 3<input type="file" name="upload[]" >

  <button id="submit-button">Upload</button>

</form>


<?php

//if(isset($_POST['submit']) && !empty($_POST) ){
$count = 0;
$max_file_size = 5000000;
  if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
  // Loop $_FILES to exeicute all files

  foreach ($_FILES['upload']['name'] as $f => $name) {

      $path = 'documents'; //path of directory

      if ($_FILES['upload']['error'][$f] == 4) {
          continue; // Skip file if any error found
      } else {
          if ($_FILES['upload']['size'][$f] > $max_file_size) {
              $message[] = "$name is too large!.";
              continue; // Skip large files
          }
          else {
              // No error found! Move uploaded files
              //$name_of_file = $_FILES['username']['name'][$f];
              $temp_name = $_FILES['upload']['tmp_name'][$f]; //[$count];
              move_uploaded_file($temp_name, "$path/"."$name");
              $count++; // Number of successfully uploaded file
          }
      }
  }
  }

输入1
输入2
投入3
上传

我已经解决了。我接受了上面的评论,并在每个文件字段中放置了一个文本输入字段。如果需要设置名称,这些字段也可以是隐藏字段

然后我滚动浏览它们,保存名称并在服务器端应用这些名称

感谢这些评论,他们帮助我看到了解决方案

<form action="" method="post" enctype='multipart/form-data' id="form" name="form">

  <input type="text" name="input0" value=""><input type="file" name="upload[]" ><br><br>
  <input type="text" name="input1" value=""><input type="file" name="upload[]" ><br><br>
  <input type="text" name="input2" value=""><input type="file" name="upload[]" ><br><br>

  <button id="submit-button">Upload</button>

</form>


<?php

$count = 0;
$max_file_size = 500000000000;
  if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
  // Loop $_FILES to exeicute all files


$x = 0;
$input = "input";


while ($x <= 2){

$field_name = $input.$x;

$field[$x] = $_POST[$field_name];

$x++;
}

  foreach ($_FILES['upload']['name'] as $f => $name) {

      $path = 'documents'; //path of directory

      if ($_FILES['upload']['error'][$f] == 4) {
          continue; // Skip file if any error found
      } else {
          if ($_FILES['upload']['size'][$f] > $max_file_size) {
              $message[] = "$name is too large!.";
              continue; // Skip large files
          }
          else {
              $temp_name = $_FILES['upload']['tmp_name'][$f]; //[$count];
              move_uploaded_file($temp_name, "$path/"."$field[$count]"."$name");
              $count++; // Number of successfully uploaded file
          }
      }
  }
  }







上传
修改名称字段<代码>上传[1],上传[2]
等等,然后在服务器端巧妙地处理文件。这就是我试图做的,但我不知道如何做。在循环中打印表单字段,以便每个字段都有一个适当的索引。@MUNISHKUMAR您建议如何做?我可以把它们打印出来,但是需要将它们加载到系统中