Sheng | May 7, 2022, 10:35 a.m. | Views: 340
经过一天的努力,网站现在有了上传和下载文件的功能。
上传和下载放在了一个页面里,所以写 view 的时候,既 override 了 post 也 override 了 get。
因为上传功能需要新建一个 model,并且用到 FileField(或者ImageField,不过这次没用到),再加上保存的时候用 FileSystemStorage 方法,所以要学习的东西还是蛮多的。除此之外,设置好上传文件存放的路径后,在服务器系统(Ubuntu)上设置文件夹读写权限也是文件上传功能的必要操作。
下载功能主要涉及改写 get 方法,需要 mimetypes.guess_type 方法确定文件类型,然后在 response['Content-Disposition'] 添加附件,再返回 response 即可实现文件下载。