近日在用Django框架开发过程中遇到上传用户头像问题,经多方搜索资料,终于解决问题!
1.首先,在html模版中添加类似下面的代码
1 2 3 4 5 |
|
这里需要注意一下几点:
- form表单汇总一定要有enctype="multipart/form-data"属性
- form需要以POST方式提交
- form的Action属性对应views中处理upload上传逻辑的函数
- 需要有csrf_token这个标签,否则post无法提交
- 第一个<input>的类型为file,这是一个文件选择器,name属性很重要,因为后面通过此字段取出文件对象
2.接下来,编写CGI逻辑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
取用文件的方式为:“file_obj = request.FILES.get(‘file‘, None)”。第一个参数”your_file”对应form中的第一个input标签。然后,可以通过file_obj.name获取文件名称,file_obj.read()方法获取文件内容。上传的文件放在内存中,所以此方法只适合小文件上传。