request.files['pic']中的pic是属性不是文件名
文件上传
一、普通方式
2.读取数据,再写入到服务器文件中。
# coding:utf-8
from flask import Flask,request
app = Flask(__name__)
@app.route('/upload',methods=['POST']) #上传文件
def upload():
file_open = request.files['pic']#从请求里 获取打开的文件
if file_open == None:
return '上传错误'
#读取数据
date = file_open.read()
#写入数据
save_file = open('1.png','wb')#新建一个文件,准备保存数据
save_file.write(date)
#关闭文件
file_open.close()
return '已上传成功'
# 运行程序
if __name__ == '__main__':
print(app.url_map)#查看所有的路由信息
app.run(host='0.0.0.0',port=80,debug=True) # 通过run()函数将web应用部署到web服务器并启动服务
二、简洁方式
使用 save('xxx.png')方法保存数据
# coding:utf-8
from flask import Flask,request
app = Flask(__name__)
@app.route('/upload',methods=['POST']) #上传文件
def upload():
file_open = request.files['pic']#从请求里 获取打开的文件
if file_open == None:
return '上传错误'
file_open.save('2.png')
return '已上传成功'
# 运行程序
if __name__ == '__main__':
print(app.url_map)#查看所有的路由信息
app.run(host='0.0.0.0',port=80,debug=True) # 通过run()函数将web应用部署到web服务器并启动服务
文件下载
一、简洁方式
1.导入send_from_directory
2.返回 send_from_directory(r'E:\pythonTest\flask',filename='1.png', as_attachment=True)
注意方法里第一个参数的格式
文件路径为:E:\pythonTest\flask\1.png
# coding:utf-8
from flask import Flask,request,send_from_directory
app = Flask(__name__)
@app.route('/download') #上传文件
def download():
return send_from_directory(r'E:\pythonTest\flask',filename='1.png', as_attachment=True)
# 运行程序
if __name__ == '__main__':
print(app.url_map)#查看所有的路由信息
app.run(host='0.0.0.0',port=80,debug=True) # 通过run()函数将web应用部署到web服务器并启动服务
二、模拟http响应
导入make_response
# coding:utf-8
from flask import Flask,make_response
app = Flask(__name__)
@app.route('/download') #上传文件
def download():
# 1. 二进制打开文件
file = open('1.png','rb')
# 2. 使用make_response 来构造响应信息
resp = make_response(file.read()) # 响应体数据
resp.status = "200" # 状态码
resp.headers["Content-Type"] = "image/png" # 通过字典的形式添加响应头
return resp
# 运行程序
if __name__ == '__main__':
print(app.url_map)#查看所有的路由信息
app.run(host='0.0.0.0',port=80,debug=True) # 通过run()函数将web应用部署到web服务器并启动服务
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。