wp_handle_upload() из серверной части

#wordpress

Вопрос:

Я использовал wp_handle_upload его с самого начала, и он отлично работает. Теперь я хочу получить строку base64 (jpg) из почтового магазина API в metabox, а затем преобразовать ее в jpg(пока она не будет работать нормально). Затем мне нужно загрузить его в медиатеку и прикрепить к сообщению. когда я передаю файл с file_get_contents или fopen он не работает. Есть какие-нибудь идеи?

 function base64ToImage($base64){

    $img = base64_decode($base64);
    require_once( ABSPATH . 'wp-admin/includes/image.php' );
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
    require_once( ABSPATH . 'wp-admin/includes/media.php' );

    // wp_handle_upload( $_POST['img'], 0 );
    $fp = fopen(get_template_directory()."/xxxxxxxxxxxxxxxxxxxxxxxxx.jpg", "w ");
 
    // write the data in image file
    fwrite($fp, base64_decode($base64));
 
    // close an open file pointer
    fclose($fp);

     wp_handle_upload( file_get_contents("../" ."/xxxxxxxxxxxxxxxxxxxxxxxxx.jpg"), 0 );



    return 0;
}
 

Ответ №1:

Так что для моего прошлого » я » и для всех, кто может найти это полезным. Вместо этого я использовал wp_upload_bits функцию, которую впоследствии использовал -wp_insert_attachment
-wp_generate_attachment_metadata
-wp_update_attachment_metadata
-set_post_thumbnail для того, чтобы связать изображение с конкретным родительским сообщением.