сообщение переднего конца с несколькими изображениями для загрузки?

Я использую сообщение переднего конца с загружаемым изображением,

мой код

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']; } $attach_id = media_handle_upload( $file, $new_post ); } } if ($attach_id > 0){ //and if you want to set that image as Post then use: update_post_meta($new_post,'_thumbnail_id',$attach_id); } 

и это хорошо работает с загрузкой одного изображения, подобного этому

  <input type="file" id="image" name="image"> 

но когда я меняю свой html на

  <input type="file" id="image" name="image[]" multiple="multiple" > 

прекратить загрузку

Кто-нибудь может мне помочь????

Solutions Collecting From Web of "сообщение переднего конца с несколькими изображениями для загрузки?"

атрибут multiple="multiple" или multiple="" тега входного файла является довольно новым и не поддерживается широкоугольным браузером, но если это так, как вы хотите,

попробуй это:

 <form ... <input type="file" id="image" name="image[]" onchange="updateList();" multiple="multiple" > <ul id="file_list"></ul> </form> <script> function updateList(){ //get the input and UL list var input = document.getElementById('image'); var list = document.getElementById('file_list'); //empty list for now... while (list.hasChildNodes()) { list.removeChild(ul.firstChild); } //for every file... for (var x = 0; x < input.files.length; x++) { //add to list var li = document.createElement('li'); li.innerHTML = 'File ' + (x + 1) + ': ' + input.files[x].name; list.append(li); } } </script> 

теперь, когда файлы загружаются, вам нужно использовать исправление для массива, чтобы использовать эту функцию, поэтому используйте эту функцию из Golden Apples

 function fix_file_array(&$files) { $names = array( 'name' => 1, 'type' => 1, 'tmp_name' => 1, 'error' => 1, 'size' => 1 ); foreach ($files as $key => $part) { // only deal with valid keys and multiple files $key = (string) $key; if (isset($names[$key]) && is_array($part)) { foreach ($part as $position => $value) { $files[$position][$key] = $value; } // remove old key reference unset($files[$key]); } } } function insert_attachment($file_handler,$post_id,$setthumb='false') { require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_sideload( $file_handler, $post_id ); if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); return $attach_id; } не function fix_file_array(&$files) { $names = array( 'name' => 1, 'type' => 1, 'tmp_name' => 1, 'error' => 1, 'size' => 1 ); foreach ($files as $key => $part) { // only deal with valid keys and multiple files $key = (string) $key; if (isset($names[$key]) && is_array($part)) { foreach ($part as $position => $value) { $files[$position][$key] = $value; } // remove old key reference unset($files[$key]); } } } function insert_attachment($file_handler,$post_id,$setthumb='false') { require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_sideload( $file_handler, $post_id ); if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); return $attach_id; } 

и как только у вас есть эта функция, вы можете сделать это:

 if ($_FILES) { fix_file_array($_FILES[$name]); foreach ($_FILES[$name] as $file => $fileitem){ $newupload = insert_attachment($fileitem,$real_post_id); } } 

которые должны работать