前端的二进制
- 文件类型 Blob:二进制文件类型
- input 的
type=file
:file 类型,继承于 Blob
前端实现下载功能
实现下载字符串到文件里,需要将字符串包装成二进制类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>前端实现下载功能</title>
</head>
<body>
<script>
let str = "<div><h1>凯小默的博客</h1><span>专注前端领域开发</span></div>";
// 包装后的文件类型不能直接修改
const blob = new Blob([str], {
type: "text/html"
});
const a = document.createElement("a");
a.setAttribute("download", "index.html");
a.href = URL.createObjectURL(blob);
a.click();
</script>
</body>
</html>
前端实现预览功能
读取二进制中的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>前端实现预览功能</title>
</head>
<body>
<input type="file" id="file" />
<script>
file.addEventListener("change", (e) => {
console.log(e.target.files);
// 二进制文件类型
let file = e.target.files[0];
// 方式一:同步读取
let img = document.createElement("img");
let url = URL.createObjectURL(file);
img.src = url;
document.body.appendChild(img);
// 销毁使用
// URL.revokeObjectURL(url);
// 方式二:异步读取内容
let fileReader = new FileReader();
fileReader.onload = function () {
console.log(fileReader.result);
let img = document.createElement("img");
img.src = fileReader.result;
document.body.appendChild(img);
};
fileReader.readAsDataURL(file);
});
</script>
</body>
</html>