如果我使用多个文件字段,可以使用foreach检索这些字段。这种方法工作正常。
<input type="file" name="attachFile">
<input type="file" name="attachFile2">
<input type="file" name="attachFile3">
foreach($_FILES as $attachFile)
{
$tmp_name = $attachFile['tmp_name'];
$type = $attachFile['type'];
$name = $attachFile['name'];
$size = $attachFile['size'];
}
如果我对HTML5多文件字段执行相同操作,则无效。以下是我没有运气的例子。它也不会产生任何错误。
<input multiple="multiple" type="file" name="attachFile">
foreach($_FILES['attachFile'] as $attachFile)
{
$tmp_name = $attachFile['tmp_name'];
$type = $attachFile['type'];
$name = $attachFile['name'];
$size = $attachFile['size'];
}
答案 0 :(得分:1)
这样做。创建一个函数,并首先确定要附加的文件数。使用该功能附加每个文件。
function reArrayFiles(&$attachFile)
{
$file_ary = array();
$file_count = count($attachFile['name']);
$file_keys = array_keys($attachFile);
for ($i=0; $i<$file_count; $i++)
{
foreach ($file_keys as $key)
{
$file_ary[$i][$key] = $attachFile[$key][$i];
}
}
return $file_ary;
}
$file_ary = reArrayFiles($_FILES['attachFile']);
foreach($file_ary as $file)
{
$tmp_name = $file['tmp_name'];
$type = $file['type'];
$name = $file['name'];
$size = $file['size'];
}
正确使用多个文件的输入。
<input multiple="multiple" type="file" name="attachFile[]">