文件类型之前的转换关系如下图:
//file 转 base64 字符串
public static String fileToBase64(File file) throws Exception {
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
Base64.Encoder encoder = Base64.getEncoder();
return encoder.encodeToString(buffer);
}
转换关系代码如下:
一、file 转换为 base64 && blob 流转换为 base64 * readAsDataURL(Blob|File)
获取 base64 编码文件
readAsText(Blob|File, opt_encoding) 获 取 文 本 字 符 串 默 认 情 况 下 , 文 本 编 码 格 式 是 ’
UTF-8’,可以通过可选的格式参数,指定其他编码格式的文本。
readAsArrayBuffer(Blob|File) //返回一个 ArrayBuffer(数组缓存)对象。
readAsBinaryString(Blob|File) //返回二进制字符串,该字符串每个字节包含一个 0 到 255
之间的整数。 * abort() //该方法用于中止文件上传。
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onload = function(){
console.log(reader.result);
};
二、base64 转换为 file
dataurl base64 对象
filename 文件名
function dataURLtoFile(dataurl, filename) {//将 base64 转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
三、 base64 转换为 blob
评论0