<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="file">
<img src="" alt="">
<script>
document.getElementsByTagName('input')[0].onchange = function (event) {
let reader = new FileReader();
// file转base64
reader.readAsDataURL(event.target.files[0]);
// file转buffer文件, 注意如果要转换blob文件的话最好先转换为buffer再转换为blob
// reader.readAsArrayBuffer(e.dataTransfer.files[0]);
reader.onload = function (base) {
// base64字符串编码
console.log('base64:::', base.target.result);
// base64转file
console.log('file', dataURLtoFile(base.target.result, event.target.files[0].name))
// base64转blob
const blob = dataURLtoBlob(base.target.result);
console.log('blob', blob);
// blob本地使用路径
const blobUrl = URL.createObjectURL(blob);
console.log('blob', blobUrl);
document.getElementsByTagName('img')[0].src = blobUrl;
// blob转file
const files = new window.File(
[blob],
'图片',
{ type: event.target.files[0].type }
);
console.log('file', files);
}
}
// base转blob
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(',');
//注意base64的最后面中括号和引号是不转译的
var _arr = arr[1].substring(0,arr[1].length-2);
var mime = arr[0].match(/:(.*?);/)[1],
bstr =atob(_arr),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}
//将base64转换为文件
function dataURLtoFile(dataurl, filename) {
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
});
}
</script>
</body>
</html>
文件转换
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 随着办公的越来越信息化,办公软件更新越来越多。办公软件的性能不同,也许在处理完后保存的文件格式都会不一样,这样在同...
- 1. 文档转换 将 About.odt 转成 About.docx (1) FileConverter/sourc...