我的第一篇帖子很温柔!我已经尝试过搜索这个并且有许多类似的帖子,但我似乎找不到任何与我的问题完全相同的东西,而且我已经在这里待了几个小时! : - /
我正在使用PHP(5.3)和MySQL构建一个系统,部分功能是用户需要根据以前的选择上传一些文件。示例表格如下:
<form action="" method="post" enctype="multipart/form-data" id="uploadFiles">
<p>
<label for="file1">Upload file 1:</label>
<input type="file" name="file1" id="image">
</p>
<p>
<label for="file2">Upload file 2:</label>
<input type="file" name="file2" id="image2">
</p>
<p>
<input type="submit" name="upload" id="upload" value="Upload">
</p>
</form>
在这种情况下,用户需要上传两个不同的文档。这一切都适合我,我可以将2个文件保存到服务器,然后通过循环“$ _FILES”将2条记录插入到数据库中的表中,文件名,文件类型(pdf,jpg)和用户ID等我的上传课程。
我想要做的是以某种方式将名称属性<input name="foo">
添加到插入的行,以便“File 1”在名为document_type的列中具有“file1”,而“File 2”将具有“file2” ”。这样我就可以在MySQL中进行基本检查,看看用户是否上传了相应的文件。
要切入追逐,有没有办法将INPUT“name”属性分配或关联到我的Upload类中的$ _FILES中的每个文件,这样当我循环遍历$ _FILES时,有一个唯一的document_type?
如果您需要有关我的设置的更多信息,请与我们联系。
答案 0 :(得分:1)
foreach ($_FILES as $inputName => $uploadedFile) {
echo $inputName, ':', PHP_EOL;
print_r($uploadedFile);
}
<强>输出强>
file1:
Array (
'name' => ...
'tmp_name' => ...
...
)
file2:
Array (
'name' => ...
'tmp_name' => ...
...
)
答案 1 :(得分:0)
文件INPUT的名称应该是$_FILES
数组中行的键。例如,在您的示例中,$ _FILES数组应该有两行可以像这样引用:$_FILES['file1']
和$_FILES['file2']
。因此,当您循环遍历数组时,只需查找该键值并将其插入行中。
答案 2 :(得分:0)
最简单的是不要为输入使用不同的名称,而是将相同的名称写为数组,例如name =&#34; file []&#34;。
答案 3 :(得分:0)
我相信问题已得到解答,但是对于未来的建议,如果您需要有关CI中传递参数的更多信息,可以使用Xdebug(我与Netbeans一起使用)。我只是使用了一个星期,这是一个很棒的工具!