这个错误通常是因为Blob对象没有正确创建,可以通过以下代码解决:
// 使用FileReader将base64数据编码为Blob function base64toBlob(base64Data, contentType) { contentType = contentType || ''; const sliceSize = 1024; const byteCharacters = atob(base64Data); const byteArrays = []; for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { const slice = byteCharacters.slice(offset, offset + sliceSize); const byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } const byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } const blob = new Blob(byteArrays, {type: contentType}); return blob; }
// 示例:将base64编码的图片转换为Blob对象 const imageBase64 = 'data:image/jpeg;base64,/9j/4AAQSkZ...' const blob = base64toBlob(imageBase64, 'image/jpeg');
// 将Blob对象作为FormData的值进行传递 const formData = new FormData(); formData.append('file', blob, 'filename.jpg');