首先是前端:
先看看下载按钮的点击事件:
然后,来设计下这个download函数:
首先需要发一个请求告诉后端,要下载哪个文件,然后接口返回文件本体,并且生成一个看不见的超链接,再自动点击的方式来下载。
函数如下:
然后是urls.py:
最后是views.py:
后端主要是找到文件路径后,通过读取和指定返回格式来返回文件。
测试一下:
点击下载按钮之后,浏览器右上角会有下载显示:
本地也会出现:
试了下别的资源,也下载成功。
然后就是异常处理,虽然正常操作下来不会出现异常...但也要做处理:
比如下载时候,发现文件已经不在:
处理办法:后端引发404返回,前端针对404和其他错误捕获做提示。
结果:
可以看到后端已经没有报错了:
前端展示: