表单传文件出现 AttributeError: ‘str‘ object has no attribute ‘filename‘

BEGIN:

出现问题时:

在这里插入图片描述
解决方法:
在这里插入图片描述

enctype属性

enctype这个属性管理的是表单的MIME(Multipurpose Internet Mail Extensions)编码,共有三个值可选:

1、application/x-www-form-urlencoded —默认值,作用是设置表单传输的编码,不能用于上传文件

eg: AJAX中xmlHttp.setRequestHeader(“Content-Type”,“application/x-www-form- urlencoded”),不写会报错的

form表单里是可以不写enctype=application/x-www-form-urlencoded,因为默认HTML表单就是这种传输编码类型

2、multipart/form-data —制定传输数据的特殊类型,上传的非文本的内容,比如图片或是是mp3

3、text/plain —纯文本传输,不能用于上传文件

MIME: 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等,服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

enctype属性详见:https://www.cnblogs.com/minty/p/7908361.html

END.