HTML文件上传与下载
文件下载 传统的文件下载有两种方法: 使用<a/>标签,href属性直接连接到服务器的文件路径 window.location.href="url" 这两种方法效果一样。但有个很大的问题,如果下载出现异常(连接路径失效、文件不存在、网络问题等),会导致原本的页面被覆盖掉,显示404等错误信息。 大致的优化思路如下: 使用<a/>标签HTML5新的属性download。 使用<iframe><iframe/>元素进行下载。 使用ajax、axios、fetch等方法异步下载。 使用websocket下载。 我们来逐一分析: <a/>标签的download属性,需要和href一起用,download的作用是为下载的文件赋文件名。 如果服务端没有指定文件名,就以此属性规定的名称命名。 如果下载出现异常,该属性的存在能够保证页面不会出问题。 如果服务端返回的不是文件、而是字符,如果download=‘’error.txt”,能够通过打开此文件查看到返回的文本信息。 <iframe>标签可以做到在现有的页面下,内嵌一个子页面。当用户点击文件下载时,将隐藏的iframe元素的src属性指向文件下载路径。 如果没有异常,文件将会直接下载。 如果出现异常,iframe子页面会报错,父页面不会受任何影响。 使用异步请求进行下载。 在网上看了看,大致的流程是