PHP - загрузка нескольких файлов - PullRequest
5 голосов
/ 14 ноября 2010

Я работаю над плагином для 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 в качестве аргумента.

Ответы [ 2 ]

18 голосов
/ 14 ноября 2010

Попробуйте:

$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);
  }
}
0 голосов
/ 14 ноября 2010

Не могли бы вы пройтись по массиву файлов и затем вызвать upload_handlers?

, например

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] );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...