前端下载文件以及上传图片预览,顺便了解arrayBuffer和blob
时间: 2024-03-05 18:52:35 浏览: 259
好的,让我先回答你的问题。前端可以通过创建一个 `a` 标签并设置其 `href` 属性,然后使用 JavaScript 触发点击事件来实现文件下载。例如:
```javascript
function downloadFile(url, filename) {
const link = document.createElement('a');
link.href = url;
link.download = filename;
link.click();
}
```
至于上传图片预览,可以使用 HTML5 中的 `FileReader` API。例如:
```html
<input type="file" onchange="previewImage(event)">
<img id="preview">
<script>
function previewImage(event) {
const input = event.target;
if (input.files && input.files[0]) {
const reader = new FileReader();
reader.onload = function() {
const image = document.getElementById('preview');
image.src = reader.result;
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
```
关于 `arrayBuffer` 和 `blob`,它们都是 JavaScript 中的二进制数据类型。
`arrayBuffer` 是一种固定长度的缓冲区,用于存储二进制数据。它不能直接被读取或写入,需要结合其他 API(如 `DataView`)来使用。
`blob` 则是一种可变长度的二进制数据类型,可以用于存储任何类型的文件或数据。它通常用于将二进制数据上传到服务器或者在浏览器中预览文件。
阅读全文