获取$ _POST变量以及相关的$ _FILES

时间:2015-10-11 15:55:42

标签: php html

我有一个表单。当用户点击添加文件时。附加两个输入字段。一个具有要上载的文件的输入名称,另一个具有文件本身的输入字段



<form>
  <label>File 1</label>
  <input type="text" name="fileName[]"/>
  <input type="file" name="file[]"/>
  
  <label>File 2</label>
  <input type="text" name="fileName[]"/>
  <input type="file" name="file[]"/>
  .
  .
  .
  .
  
  <input type="submit" value="submit"/>
&#13;
&#13;
&#13;

如何获取相应的文件名和文件以便插入 由于文本字段将存储在$ _POST变量和$ _FILES

文件中

2 个答案:

答案 0 :(得分:2)

首先,您的表单需要具有属性enctype="multipart/form-data",如下所示:

<form type="post" enctype="multipart/form-data">

在提交时:您可以获得$ _FILES和$ _POST数组。 要查看您拥有的内容,请尝试(如果已提交):

echo '<pre>';
print_r($_POST);
print_r($_FILES);
echo '</pre>';

如果您的文件字段name属性为“upload_pic”,则您的$_FILES数组应如下所示:

Array
(
    [upload_pic] => Array
        (
            [name] => name_of_file
            [type] => file_type
            [tmp_name] => temporary_name
            [error] => 4
            [size] => 0
        )

)

我相信这会为您提供插入数据库所需的任何信息。 (例如$filename = $_FILES['upload_pic']['name']),将其添加到$ _POST数组并继续执行插入查询。

修改: 重新阅读你的问题,我明白了:

  

当用户点击添加文件时。附加两个输入字段。一   使用要上载的文件的输入名称和另一个带输入的文件   文件本身的字段......

我想知道为什么你需要为“fileName”手动构建单独的text输入,因为你可以从$_FILES数组中获取它(如上所述)。

答案 1 :(得分:0)

将[{1}}中的内容和$_POST中的内容存储在变量中。然后你需要用$_FILESfopen打开de文件到你从fwrite检索的变量文件。完成后不要忘记$_POST文件。