Вы можете попробовать преобразовать 64-кодированное встроенное изображение, возвращаемое canvas.toDataURL('image/png')
, в тот же тип File
объекта, который вы получаете из элемента <input id="file" type="file"></input>
при использовании document.getElementById("file").files[0]
, и добавить его к fd
. * 1006.*
Чтобы попробовать, измените
var fd = new FormData(document.forms[0]);
fd.append("image", img);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/api/file/upload",
data: fd,
processData: false,
contentType: false,
cache: false,
success: (data) = > {
alert("yes");
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
на
fetch(img.src)
.then(res = > res.blob())
.then(blob = > {
const file = new File([blob], "capture.png", {
type: 'image/png'
});
var fd = new FormData();
fd.append("image", file);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/api/file/upload",
data: fd,
processData: false,
contentType: false,
cache: false,
success: (data) = > {
alert("yes");
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});