jquery - Cant use admin-ajax.php to upload image - 400 bad request
one text
I have tried very many things but nothing worked for me. I am trying to upload image created by imageMaker using ajax in wordpress.
.php
<?php
/*
Plugin Name: Sizer
Description: Sizer
Version: 1.00
*/
function upload_file_callback(){
if (isset($_POST['upload_file_callback'])){
echo'ok';
}
else{
echo 'bad';
}
}
add_action('wp_ajax_nopriv_upload_file', 'upload_file_callback');
add_action( 'wp_ajax_upload_file', 'upload_file_callback' );
And part of the JS code:
onGenerate: function(data, formData){
var ajax_url = 'https://bespokelazienki.pl/wp-admin/admin-ajax.php';
var image = new Image();
image.src = data["amm_canvas"];
image.name = "123.png";
var q = '<?php echo wp_create_nonce('uploadingFile'); ?>';
var fd = new FormData();
fd.append("security", q);
fd.append("file",dataURLtoFile(data["amm_canvas"], 'filename.png'));
fd.append("action", "upload_file_callback");
for (var pair of fd.entries()) {
console.log(pair[0]+ ', ' + pair[1]);
}
$.ajax({
url:ajax_url,
type:"POST",
processData: false,
contentType: false,
enctype: "multipart/form-data",
data: fd,
success : function( response ){
var returnedData = JSON.parse(response);
if(returnedData.code == 200){
alert('File uploaded!');
}else{
alert(returnedData.msg);
}
},
I am using this [example code from github] for imageMaker
After click a button in console its "bad requests": [1]: https://i.stack.imgur.com/2TZqu.png
I tried also:
- with only 2 fields (image + action hook name)
- image as a Image class
- image as base64 code
Any idea? I think upload_file_callback is not used at all. Testing demo: https://bespokelazienki.pl/41736-2/
Source