2 回答

TA貢獻1834條經驗 獲得超8個贊
解決了?。?!
通過獲取價值
image = $("#input-file-img").val()
這意味著我正在將類型字符串作為文件發送
所以我不得不把它改成
image = $('#input-file-img')[0].files[0]
一切都很好

TA貢獻1806條經驗 獲得超8個贊
我認為你的服務器端代碼很好,如果我修改客戶端代碼如下,一切正常,我們最終在 /uploads 文件夾中得到圖像:
function base64toBlob(base64, mimeType) {
const bytes = atob(base64.split(',')[1]);
const arrayBuffer = new ArrayBuffer(bytes.length);
const uintArray = new Uint8Array(arrayBuffer);
for (let i = 0; i < bytes.length; i++) {
uintArray[i] = bytes.charCodeAt(i);
}
return new Blob([ arrayBuffer ], { type: mimeType });
}
function submitForm() {
const imgRegEx = /^data:(image\/(gif|png|jpg|jpeg))/;
const imageData = $('#input-file-img').attr('src');
const mimeType = imgRegEx.exec(imageData)[1];
const blob = base64toBlob(imageData, mimeType);
const fileExt = mimeType.replace("image/", "");
const fileName = "test-image." + fileExt; // Change as appropriate..
const data = new FormData();
data.append("image", blob, fileName);
$.ajax({
url: '/uploadfile/' + userName,
method: 'POST',
async: false,
processData: false ,
contentType: false,
data: data
})
}
添加回答
舉報