Javascript 如何将blob转换为base64?
Html 通过使用这个,我得到了错误 TypeError:未能在“FileReader”上执行“readAsDataURL”: 参数1不是“Blob”类型Javascript 如何将blob转换为base64?,javascript,reactjs,blob,Javascript,Reactjs,Blob,Html 通过使用这个,我得到了错误 TypeError:未能在“FileReader”上执行“readAsDataURL”: 参数1不是“Blob”类型 是的,这是在react js中,但很容易理解为普通js(仅使用状态)不知道函数setImageServer()的作用,可能是因为URL.createObjectURL()返回DOMString(基本上是string类型): 因此,您的console.log正在打印blob对象的字符串表示,而不是blob本身。您可以尝试将DOMString
是的,这是在react js中,但很容易理解为普通js(仅使用状态)不知道函数
setImageServer()
的作用,可能是因为URL.createObjectURL()
返回DOMString
(基本上是string
类型):
因此,您的console.log
正在打印blob对象的字符串表示,而不是blob本身。您可以尝试将DOMString
转换为base64
:
问题是我使用的是
image.src
,而不是像respone.data那样使用服务器的直接响应
这就是解决办法
var image = document.getElementById('image')
console.log(image.src) // blob:http://localhost:3000/1c012729-b104-4fb5-a9a5-39aa782860b4
var reader = new FileReader()
reader.readAsDataURL(image.src)
reader.onloadend = function () {
var base64data = reader.result
console.log(base64data)
}
我认为这个问题可以很好地回答你的问题:setImageServer()是react StateCha,我现在明白了。希望这个答案能帮助你解决问题!您可以添加如何将该dom字符串转换为base64的代码吗?在上面的链接中,在“Unicode问题”下,var blob=b64EncodeUnicode(image.src)
并用于reader.readAsDataURL(blob)
,得到了相同的错误
<img id='image' src={ImageServer} alt='Girl in a jacket' /> //getting an actual image(its working)
var image = document.getElementById('image')
console.log(image.src) // blob:http://localhost:3000/1c012729-b104-4fb5-a9a5-39aa782860b4
var reader = new FileReader()
reader.readAsDataURL(image.src)
reader.onloadend = function () {
var base64data = reader.result
console.log(base64data)
}
axios
.get(RequestURL, { responseType: 'blob', withCredentials: false })
.then((response) => {
console.log(response.data)
let imgData = window.URL.createObjectURL(response.data)
setImageServer(imgData)
var reader = new FileReader()
reader.readAsDataURL(response.data)
reader.onloadend = function () {
var base64data = reader.result
console.log(base64data)
}
})