我正在使用发布请求将图像文件(转换为Uint8Array)发送到服务器,我如何在服务器端读取该图像文件并将其转换为服务器端的'base64'字符串。有人可以帮帮我吗 ?我正在使用nodejs作为后端。
我的代码段如下
let image = null
document.getElementById('img').addEventListener('change', (event) => {
const img = event.target.files[0]
try {
let file = new FileReader()
file.readAsArrayBuffer(img)
file.addEventListener("load", () => {
this.image = new Uint8Array(file.result)
})
} catch (error) {
console.log(error)
}
})
var data = {image: this.image}
axios.post('http:localhost:8080/post/upload', data, {headers: {'Content-type': 'application/json'}})
.then((response) => {
if(response) {
console.log(response.data)
}
}).catch((err) => {
console.log(err)
})
下面是我的后端代码段,当我使用上述代码发出请求时,出现以下错误=>(节点:22468)UnhandledPromiseRejectionWarning:TypeError [ERR_INVALID_ARG_TYPE]:“ path”参数必须为字符串类型或缓冲区或URL。收到对象的实例
private_router.post('/post/upload', async(req: express.Request, res:
express.Response) => {
let img = null
fs.readFile(req.body.image, (err, data) => {
if(err) console.log(err)
else img = data
})
if(img != null) {
console.log(img)
return res.status(200).json({message: 'posted'})
}
res.status(200).json({message: 'posted'})
})