📅  最后修改于: 2023-12-03 15:40:48.555000             🧑  作者: Mango
烧瓶上传是一种常见的文件上传和下载方式,它是基于 HTTP 协议的,可以在 Web 应用中使用。使用 Python 编写烧瓶上传代码可以方便地在 Web 应用中实现文件上传和下载功能。
烧瓶上传的原理是通过 HTTP 协议的 POST 请求实现的。在客户端(浏览器或其他客户端程序)选择要上传的文件后,将数据通过 HTTP 协议的 POST 请求发送到 Web 服务器。Web 服务器收到请求后,将文件保存到指定的路径中。
from flask import Flask, request, jsonify, send_file
import os
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
if 'file' not in request.files:
return jsonify({'error': 'No file found'})
file = request.files['file']
if file.filename == '':
return jsonify({'error': 'No file name found'})
file.save(file.filename)
return jsonify({'success': 'File uploaded'})
@app.route('/download', methods=['GET'])
def download():
if not os.path.exists('file.txt'):
return jsonify({'error': 'File not found'})
return send_file('file.txt', as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
导入 Flask 和其他依赖的模块。
创建一个 Flask 应用实例。
定义一个 '/upload' 路由,当客户端发送一个 POST 请求时,执行 upload 函数。此函数首先检查上传的文件是否存在,如果存在则保存到服务器中,最后返回一个成功的消息。
定义一个 '/download' 路由,当客户端发送一个 GET 请求时,执行 download 函数。此函数首先检查要下载的文件是否存在,如果存在则以附件的形式下载该文件。
启动应用程序。
程序中的 upload 函数将文件保存到与代码文件相同的目录中,可以根据需要修改保存路径。
代码示例中默认上传的文件名为 'file',可以根据实际应用需要修改文件名。
```python
from flask import Flask, request, jsonify, send_file
import os
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
if 'file' not in request.files:
return jsonify({'error': 'No file found'})
file = request.files['file']
if file.filename == '':
return jsonify({'error': 'No file name found'})
file.save(file.filename)
return jsonify({'success': 'File uploaded'})
@app.route('/download', methods=['GET'])
def download():
if not os.path.exists('file.txt'):
return jsonify({'error': 'File not found'})
return send_file('file.txt', as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
```
从客户端上传文件到服务器上并从服务器上下载文件。