Javascript 是否使用FormData上载base64编码的图像?
我有一个jpeg作为base64编码字符串Javascript 是否使用FormData上载base64编码的图像?,javascript,form-data,Javascript,Form Data,我有一个jpeg作为base64编码字符串 var image = "/9j/4AAQSkZJRgABAQEAS..." 我想使用FormData将此jpeg上载到服务器 var data = new FormData(); 将图像附加到数据的正确方式是什么 您的图像数据只不过是一个字符串,因此将其附加到FormData对象中,如下所示: data.append("image_data", image); 然后在服务器端,您可以将其直接存储在数据库中,或者将其转换为图像并存储在文件系统中。
var image = "/9j/4AAQSkZJRgABAQEAS..."
我想使用FormData将此jpeg上载到服务器
var data = new FormData();
将图像附加到数据的正确方式是什么 您的图像数据只不过是一个字符串,因此将其附加到FormData对象中,如下所示:
data.append("image_data", image);
然后在服务器端,您可以将其直接存储在数据库中,或者将其转换为图像并存储在文件系统中。你可能会觉得很有帮助。我觉得这篇文章()很有帮助。如果您的文件已表示为base64编码字符串,则首先需要从该字符串创建blob表示,然后可以使用FormData append。var imgBase64=“data:image/jpeg;base64,/9j/4aaqskzjrgabaaaqaaad/2wbdaaamca…”//您的bse64图像
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 })
}
onSubmit(){
const file=DataURIToBlob(imgBase64)
const formData=new formData();
append('upload',file,'image.jpg')
formData.append('profile\u id',this.profile\u id)//其他参数
append('path','temp/')//其他参数
}
函数DataURIToBlob(dataURI:string){
常量splitDataURI=dataURI.split(','))
const byteString=splitDataURI[0]。indexOf('base64')>=0?atob(splitDataURI[1]):decodeURI(splitDataURI[1])
常量mimeString=splitDataURI[0]。拆分(':')[1]。拆分(';')[0]
const ia=新的Uint8Array(byteString.length)
for(设i=0;i
干得好!。我不明白为什么没有任何js原生方法来实现这一点。不管怎么说,这个方法很好用,至少对我来说是这样。我浪费了两天的时间,终于成功了。我可以用expo和image picker以及.net core确认这一点。在正常提取中使用它。这个解决方案对我来说非常有用。但是,我无法上传用手机摄像头拍摄的照片,我不知道为什么。似乎也适用于pdf文件:)