将数据 url 中的图像上传到 Axios?
Upload image from data url to Axios?
我一直在用这个将图像文件上传到 API (Graphcool),一切正常:
fileUpload(file) {
let data = new FormData();
data.append('data', file);
axios
.post(`https://api.graph.cool/file/v1/MY-PROJECTID`, data, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then(res => {
console.log(res)
});
}
在上面的代码中,文件是从 <input type="file" />
传递过来的
但是现在我正在使用 React Avatar Editor 来允许用户裁剪图像并确保它们是正方形:
https://github.com/mosch/react-avatar-editor
当您从 React Avatar Editor 访问图像时,它以数据形式出现 url(通过 Canvas.toDataURL())。
如何使用 Axios 上传数据 url?我是否需要先将图像转换为浏览器内存中的实际 'file'?
这是以下线程的副本,只是使用不同的语言
您需要像下面这样更改您的代码
function fileUpload(canvas) {
let data = new FormData();
canvas.toBlob(function (blob) {
data.append('data', blob);
axios
.post(`https://api.graph.cool/file/v1/MY-PROJECTID`, data, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then(res => {
console.log(res)
});
});
}
我一直在用这个将图像文件上传到 API (Graphcool),一切正常:
fileUpload(file) {
let data = new FormData();
data.append('data', file);
axios
.post(`https://api.graph.cool/file/v1/MY-PROJECTID`, data, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then(res => {
console.log(res)
});
}
在上面的代码中,文件是从 <input type="file" />
但是现在我正在使用 React Avatar Editor 来允许用户裁剪图像并确保它们是正方形: https://github.com/mosch/react-avatar-editor
当您从 React Avatar Editor 访问图像时,它以数据形式出现 url(通过 Canvas.toDataURL())。
如何使用 Axios 上传数据 url?我是否需要先将图像转换为浏览器内存中的实际 'file'?
这是以下线程的副本,只是使用不同的语言
您需要像下面这样更改您的代码
function fileUpload(canvas) {
let data = new FormData();
canvas.toBlob(function (blob) {
data.append('data', blob);
axios
.post(`https://api.graph.cool/file/v1/MY-PROJECTID`, data, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
.then(res => {
console.log(res)
});
});
}