最早的HTTP POST是不支持文件上传的,给编程开发带来很多问题。但是在1995年,ietf出台了rfc1867,也就是《RFC 1867 -Form-based File Upload in HTML》,用以支持文件上传。所以Content-Type的类型扩充了multipart/form-data用以支持向服务器发送二进制数据。因此发送post请求时候,表单属性enctype共有二个值可选,这个属性管理的是表单的MIME编码:
①application/x-www-form-urlencoded(默认值)
②multipart/form-data
其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype=”application/x- www-form-urlencoded”.
当需要上传文件时,需要在form 标签中包含enctype=”multipart/form-data”和method=”post”属性,表单就会以二进制形式提交到服务器
flask 通过request.form.get("keyword")
获取上文提到的两种格式的数据,通过request.files.get("filename")
来获取单个文件通过reuquest.files.getlist("files[]")
来获取多个上传文件
在html代码中,多个上传文件可以通过两种方式获取
①设置多个<input>
标签,需保证name属性值相同,服务器通过reuquest.files.getlist(“files[]”)获取这一组文件
<input type="file" name ="file[]">
<input type="file" name ="file[]">
<input type="file" name ="file[]&