比方说图片上传,有file对象、blob对象和base64,如果是base64,怎么准确判断这个字符串是base64呢?如果不是图片是其他类型的呢?
比方说图片上传,有file对象、blob对象和base64,如果是base64,怎么准确判断这个字符串是base64呢?如果不是图片是其他类型的呢?
首先表示抱歉,没有遇到过这个问题。
但如果要上传未知类型的数据的话可以,直接设置请求头类型为Content-Type:multipart/form-data
。
数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type:来表名文件类型
;content-disposition:用来说明字段的一些信息
;
由于有boundary隔离
,所以multipart/form-data
既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
然后在由后台做处理(后台是可以拿到他的类型(字符串/其他文件))
例如:
你需要上传图片,但上传的图片可能是.jpg
也可以是 字符串base64格式
,只需要请求头设置为multipart/form-data
,异步提交的话将数据保存到 FormData中(注
表单可以直接获得FormData类型的数据)再提交,再由后台处理即可
base64码开头都是形如data:image/xxx;base64,xxxxxx...的
我觉得如果不用验证特别严格,可以就这样简单处理
let Src = "data:image/xxx;base64,xxxxxx...";
function isBase64(str){
if(str.indexOf('data:')!=-1 && str.indexOf('base64')!=-1 ){
return true;
}else{
return false;
}
}
console.log(isBase64(Src));
当然需要严格的话,写个正则也行
10 回答11.4k 阅读
4 回答3.3k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
or
试试看呢