我正在开发一个wordpress插件,我希望能够从表单上传多张图片。现在,当我有两张图片的表单并将其提交为空时,我的$ _FILES数组看起来像这样:
Array (
[image] => Array (
[name] => Array (
[1] =>
[2] =>
)
[type] => Array (
[1] =>
[2] =>
)
[tmp_name] => Array (
[1] =>
[2] =>
)
[error] => Array (
[1] => 4
[2] => 4
)
[size] => Array (
[1] => 0
[2] => 0
)
)
)
现在的问题是我想使用wordpress'上传处理程序,wp_handle_upload。它期望$ _FILES数组作为参数,但只有一个文件。我想它只能是两个阵列深,而不是我的三个阵列。所以我想知道是否有办法从$ _FILES数组中一次提交一个文件。这些文件在每个数组中都有相同的密钥。
编辑:改变帖子,因为我得知wp_handle_upload想要$ _FILES数组作为参数。
答案 0 :(得分:18)
尝试:
$files = $_FILES['image'];
foreach ($files['name'] as $key => $value) {
if ($files['name'][$key]) {
$file = array(
'name' => $files['name'][$key],
'type' => $files['type'][$key],
'tmp_name' => $files['tmp_name'][$key],
'error' => $files['error'][$key],
'size' => $files['size'][$key]
);
wp_handle_upload($file);
}
}
答案 1 :(得分:0)
你不能遍历你的文件数组,然后调用upload_handlers吗?
e.g。
for( $i = 1; $i <= count( $_FILES['image']['name']; $i++ ) {
// just cguessing on the args wp_handle_upload takes
wp_handle_upload( $_FILES['images']['tmp'][$i], $_FILES['images']['name'][$i] );
}