I’m working on a plugin for wordpress and I want to be able to upload multiple pictures from a form. Right now when I have a form for two pictures and submit it empty, my $_FILES array looks like this:
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 ) ) )
Now the problem is that I want to use wordpress’ upload handler, wp_handle_upload. It expects the $_FILES array as an argument, but only with one file. I guess it can only be two arrays deep, not three as mine is. So I’m wondering if there’s a way to submit the files one at a time from the $_FILES array. The files have the same key in each array.
EDIT: Changed the post since I learned that the wp_handle_upload wants the $_FILES array as argument.
Advertisement
Answer
Try:
$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); } }