Carregar e append a uma publicação vários arquivos de imagem

Em um formulário de frente, eu tenho um campo de input “múltiplo” para carregar e append imagens a uma publicação e a um script de processamento (a partir daqui ). Eu espero que seja carregado e anexado todos os arquivos que eu selecionei, mas isso não acontece. É carregado e anexado apenas o último arquivo selecionado (em ordem alfabética). Quando eu verificar a matriz $ _FILES com var_dump($_FILES) , vejo apenas um arquivo lá. Como posso carregar e append a uma publicação vários arquivos ao mesmo tempo?

  
... ...
<?php return ob_get_clean(); }

e um script de processamento:

 if (!function_exists('wp_generate_attachment_metadata')) { require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); } if ($_FILES) { foreach ($_FILES as $file => $array) { if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { return "upload error : " . $_FILES[$file]['error']; } media_handle_upload( $file, $post_id ); } } 

Solutions Collecting From Web of "Carregar e append a uma publicação vários arquivos de imagem"

Você precisará adicionar colchetes ao name do seu elemento de formulário de input múltiplo para o PHP para interpretá-lo como uma matriz.

  

Você receberá uma matriz chamada ‘miniatura’ com 5 arrays dentro dela. Veja este comentário no php.net para uma quebra da estrutura.

Editar : observe a diferença no que é retornado para um único versus uma input de arquivo múltiplo. Aqui está um exemplo com dois campos de formulário, um único upload de arquivo eo outro um múltiplo.

 
 < ?php if ($_FILES) { print_r($_FILES); } ?> 

Que imprime:

 [single] => Array ( [name] => foo.txt [type] => text/html [tmp_name] => /path/to/tmp/php/qwqerqrq [error] => 0 [size] => 1621 ) [multiple] => Array ( [name] => Array ( [0] => bar.txt [1] => baz.txt ) [type] => Array ( [0] => text/plain [1] => text/plain ) [tmp_name] => Array ( [0] => /path/to/tmp/php/vwvwrvwrv [1] => /path/to/tmp/php/wqerverhw ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 36976 [1] => 58355 ) ) 

Se o seu código estiver configurado esperando a estrutura de um único arquivo em $_FILES , você precisará atualizá-lo para funcionar com a estrutura muito diferente de um upload de arquivos múltiplos.