我有一个 jpeg 作为 base64 编码的字符串。
var image = "/9j/4AAQSkZJRgABAQEAS..."
我想使用 FormData 将此 jpeg 上传到服务器。
var data = new FormData();
将图像附加到数据的正确方法是什么?
原文由 user1031947 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 jpeg 作为 base64 编码的字符串。
var image = "/9j/4AAQSkZJRgABAQEAS..."
我想使用 FormData 将此 jpeg 上传到服务器。
var data = new FormData();
将图像附加到数据的正确方法是什么?
原文由 user1031947 发布,翻译遵循 CC BY-SA 4.0 许可协议
var imgBase64 = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCA..." //your bse64 image
onSubmit(){
const file = DataURIToBlob(imgBase64)
const formData = new FormData();
formData.append('upload', file, 'image.jpg')
formData.append('profile_id', this.profile_id) //other param
formData.append('path', 'temp/') //other param
}
function DataURIToBlob(dataURI: string) {
const splitDataURI = dataURI.split(',')
const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1])
const mimeString = splitDataURI[0].split(':')[1].split(';')[0]
const ia = new Uint8Array(byteString.length)
for (let i = 0; i < byteString.length; i++)
ia[i] = byteString.charCodeAt(i)
return new Blob([ia], { type: mimeString })
}
原文由 DINESH Adhikari 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
您的图像数据只不过是一个字符串,因此将其附加到您的 FormData 对象,如下所示:
然后在您的服务器端,您可以将其直接存储在数据库中或将其转换为图像并将其存储在文件系统中。您可能会发现 这篇文章 很有帮助。