H5移动端附件下载

H5移动端附件下载

1. 使用 window.open() 进行下载

window.open(file.fileUrl)

2. 使用 a 标签创建隐藏的可下载链接

let ele = document.createElement('a')
ele.download = file.fileName
ele.style.display = 'none'
ele.href = file.fileUrl
document.body.appendChild(ele)
ele.click()
document.body.removeChild(ele)

3. 使用 iframe 进行下载

let myFrame = document.createElement('iframe')
myFrame.src = file.fileUrl
myFrame.style.display = 'none'
document.body.appendChild(myFrame)
window.open(file.fileUrl)

4. 使用 FileSaver.js 插件下载

4.1 Vue项目中导入并使用下载附件

FileSaver.js插件传送门:https://github.com/eligrey/FileSaver.js

# 下载安装 file-saver 插件
$ cnpm install file-saver --save
import { saveAs } from 'file-saver'
saveAs(fileUrl, fileName)

4.2 FileSaver.js 的其他知识

Blob对象概念:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob

  • 保存文本
var FileSaver = require('file-saver');
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");
  • 保存URLs
var FileSaver = require('file-saver');
FileSaver.saveAs("https://httpbin.org/image", "image.jpg");
  • 保存为 canvas
var FileSaver = require('file-saver');
var canvas = document.getElementById("my-canvas");
canvas.toBlob(function(blob) {
    saveAs(blob, "pretty image.png");
});
  • 保存文件
var FileSaver = require('file-saver');
var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(file);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这应该是你见过的最全前端下载总结 自己整理的一些项目中遇到过的关于上传和下载的一些Demo,大前端系列(也就是纯前...
    周小肆阅读 5,592评论 1 12
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,162评论 1 3
  • 最近我同学找到我让我给她看一下她们的项目需求,表格数据导出到 Excel ,实现批量下载,下载的还是压缩包要求是 ...
    CondorHero阅读 6,876评论 0 6
  • mobileHack 这里收集了许多移动端上遇到的各种坑与相对解决方案 工具类网站 HTML5 与 CSS3 技术...
    Zoemings阅读 11,588评论 0 12
  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 4,952评论 0 0