2014-12-05 110 views
0

我在前端有一个允许登录用户发布活动(自定义帖子)的表单。如果用户附加了图像,我的表单当前工作正常 - 但是,图像上传字段('postImage')是可选的,并且未附加图像时,我会看到一个没有错误的空白屏幕(无日志)。在我的数据库中的字段“bgc_event_pimg”的检查,我得到:从WordPress前端上传附件

O:8:"WP_Error":2:{s:16:"WP_Errorerrors";a:1:{s:12:"upload_error";a:1:{i:0;s:21:"No file was uploaded.";}}s:20:"WP_Errorerror_data";a:0:{}} 

我认为这个问题的原因是:($ _FILES [$文件] [“错误”] - 而不是忽略的领域/离开它。空白,它插入错误,但我不确定如何相应地处理这个

if ($_FILES['postImage']) { 
    foreach ($_FILES as $file => $array) { 
    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { 
    return "upload error : " . $_FILES[$file]['error']; 
    } 
    $attach_id = media_handle_upload($file, $post_id); 
    } 
} 
if ($attach_id > 0){ 
    update_post_meta($post_id,'bgc_event_pimg',$attach_id); 
} 

我已经中的functions.php以下;

function insert_attachment($file_handler,$post_id,$setthumb='false') { 
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; 
} 

非常感谢

回答

0

我能得到这个与以下工作 -

if ($_FILES['postImage']) { 
    foreach ($_FILES as $file => $array) { 
    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { 
     //Add your error action 
    } else { 
     $attach_id = media_handle_upload($file, $post_id); 
    } 
    } 
} 
if ($attach_id > 0){ 
    update_post_meta($post_id,'bgc_event_pimg',$attach_id); 
}