Я использую код ниже на другой странице (в той же папке). Хорошо работает загрузка изображения в медиатеку Wordpress с использованием поля ввода файла, выбор изображения на моем ПК.
Теперь я пытаюсь использовать тот же код на этой странице, но для загрузки созданного изображенияиз URL -> base64 -> blob
код:
$(".mySubmit").click(function(event){
event.preventDefault();
var url = "url/action";
var image = imgLink; //correct src image url
var base64ImageContent = getBase64Image(document.getElementById("thumbImg"));
var blob = base64toBlob(base64ImageContent, 'image/png');
console.log(blob);
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
var formData = new FormData();
formData.append('updoc', blob);
// formData.append('updoc', $('#user-file')[0].files[0]);
formData.append('action', "questiondatahtml");
$.ajax({
url: ajaxurl,
type: "POST",
data:formData,cache: false,
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
success:function(data) {
alert("IMAGE UPLOADED ON WORDPRESS");
},
});
});
консольный журнал на blob возвращает:
Blob {size: 315485, type: "image/png"}
size: 315485
type: "image/png"
__proto__: Blob
arrayBuffer: ƒ arrayBuffer()
size: (...)
slice: ƒ slice()
stream: ƒ stream()
text: ƒ text()
type: (...)
constructor: ƒ Blob()
Symbol(Symbol.toStringTag): "Blob"
get size: ƒ size()
get type: ƒ type()
__proto__: Object
он не возвращает никаких ошибок, но это не такзагрузка изображения
РЕДАКТИРОВАТЬ : утешил упоминанием, что для того, чтобы вышеуказанная работа работала (с локальной загрузкой файла), мне пришлось добавить код ниже в моей функции.php:
add_action( 'wp_ajax_questiondatahtml', 'questiondatahtml_update' );
add_action( 'wp_ajax_nopriv_questiondatahtml', 'questiondatahtml_update' );
function questiondatahtml_update() {
if ( $_FILES ) {
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$file_handler = 'updoc';
$attach_id = media_handle_upload($file_handler,$pid );
}
echo "You are done!!";
wp_die();
}