文件和其他的数据类型不一样,是一个二进制的形式
Form上传文件的时候切记要加上:enctype="multipart/form-data"
formupload.html
<form action="/formupload/" method="post" enctype="multipart/form-data"> {% csrf_token %} <p>姓名:<input type="text" name="username"></p> <p>密码:<input type="password" name="password"></p> <p>头像:<input type="file" name="file"></p> <p><input type="submit" value="提交"></p> </form>
view.py
def formupload(request): if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") # file = request.FILES #拿到的是一个句柄 file_obj = request.FILES.get("file") print(file_obj,file_obj.name) print(type(file_obj),type(file_obj.name)) #<class 'django.core.files.uploadedfile.InMemoryUploadedFile'> <class 'str'> with open(file_obj.name,"wb") as f: for i in file_obj: f.write(i) return HttpResponse("上传成功...") return render(request,"formupload.html")