2013-02-12 85 views
0

我试图上传多个文件并将它们附加到Wordpress文章。 该代码与单个图像的伟大工程:使用HTML 5和PHP多文件上传

PHP

function insert_attachment($file_handler,$post_id,$setthumb='false') { 
    // check to make sure its a successful upload 
    if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_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_upload($file_handler, $post_id); 

    if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); 
     return $attach_id; 
} 

if ($_FILES) { 
    foreach ($_FILES as $file => $array) { 
    $newupload = insert_attachment($file,$pid); 
} 

HTML

<fieldset class="images"> 
    <label for="images">Images</label> 
    <input type="file" name="images" id="images" tabindex="25"/> 
</fieldset> 

但我怎么能使其与多个图像工作?

我知道我必须添加multiple="multiple"到输入,输入的名称应该是images[]。但我肯定有PHP脚本的问题。

+2

[上传多个文件(http://php.net/manual/en/features.file-upload.multiple .php) – 2013-02-12 07:11:42

+0

感谢您的参考,@Akam。不过,如果您能演示如何将其应用于我的PHP部分,我将非常感激。 – Sergey 2013-02-12 07:15:37

+0

它更好地使用多个而不是使用HTML5多个功能,因为它目前不能交叉兼容。 – 2013-02-12 07:34:58

回答

1

万一有人需要这个未来:我找到了解决办法here

// If we have files 
if ($_FILES) 
{ 
    // Get the upload attachment files 
    $files = $_FILES['upload_attachment']; 

    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] 
      ); 

      $_FILES = array("upload_attachment" => $file); 

      foreach ($_FILES as $file => $array) 
      { 
       $newupload = insert_attachment($file,$post->ID); 
      } 
     } 
    } 
}