后端的代码
# coding:utf-8
from flask import Flask app = Flask(__name__)
@app.route("/upload", method=["POST"])
def upload():
# pic是前端代码中设置的``
file_obj = request.files.get("pic")
if ile_obj is None:
return "未上传文件"
# 将文件保存到本地
# 1.创建文件
f = open("./daemo.jpg","wb")
# 2.向文件写内容
data = file_obj.read()
f.write(data)
# 3.关闭文件
f.close()
#直接使用上传的文件对象保存
file_obj.save("./static/demo.jpg")
return "上传成功"
if __name__ == '__main__': app.run(host='0.0.0.0', port=80, debug=True)
前端html文件
<form action="" method="post" enctype="multipart/form-data" style="display: inline-block" class="pull-right">
<div class="form-group ">
<label for="exampleInputFile">读取文件</label>
<input type="file" id="exampleInputFile" name="file" value="">
</div>
<button class="btn btn-success" type="submit">文件导入数据</button>
</form>
# 记得写enctype="multipart/form-data"
enctype就是encodetype就是编码类型的意思。
multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。
需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。
application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。