背景
下载文件功能,点击下载按钮,后端返回二进制文件流,前端执行下载文件功能;当返回错误信息时前端能够正确提示。
步骤一:请求设置responseType
请求数据时responseType不同,ArrayBuffer为arraybuffer,blob为blob。
步骤二:对响应进行拦截并判断
正确情况
创建a标签并下载。const blob = new Blob([res]); const fileName = row.fileName; //文件名称,带后缀 const link = document.createElement('a'); link.href = URL.createObjectURL(res); link.download = fileName; document.body.appendChild(link); link.click(); URL.revokeObjectURL(link.href); document.body.removeChild(link);
- 错误情况
当下载失败时,转换返回值,并进行提示。
关于blob、ArrayBuffer区别详见下面链接:
https://blog.csdn.net/qq_38974163/article/details/119862253
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。