使用Python编写的WebAPI如何实现文件上传与下载功能
发布时间:2024-01-01 22:38:09
在Python中,可以使用Flask框架来编写WebAPI,并使用Flask提供的文件上传与下载功能实现文件的上传与下载。
首先,需要安装Flask库。可以使用以下命令安装Flask:
pip install Flask
接下来,创建一个新的Python文件,命名为app.py,并在文件中编写以下代码:
from flask import Flask, request, send_from_directory
app = Flask(__name__)
# 设置一个临时文件夹来保存上传的文件
app.config['UPLOAD_FOLDER'] = 'uploads'
# 定义一个路由来处理文件上传请求
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
if file:
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
return '文件上传成功'
else:
return '文件上传失败'
# 定义一个路由来处理文件下载请求
@app.route('/download/<filename>', methods=['GET'])
def download_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
if __name__ == '__main__':
app.run(debug=True)
上述代码中,首先导入了Flask、request和send_from_directory模块。然后创建了一个Flask应用,并配置了一个临时文件夹用于保存上传的文件。
然后,定义了两个路由,分别处理文件上传和文件下载请求。在文件上传的路由中,通过request.files['file']获取到上传的文件,然后使用file.save()方法保存文件到临时文件夹中。在文件下载的路由中,使用send_from_directory函数从指定文件夹中发送文件给客户端。
最后,使用app.run()方法启动应用,并通过设置debug=True来开启调试模式。
现在,启动应用,访问http://localhost:5000/upload路由即可上传文件。使用Postman等工具发送一个POST请求到该路由,设置file参数为要上传的文件。上传成功后,返回文件上传成功消息。
要下载上传的文件,只需访问http://localhost:5000/download/<filename>路由,其中<filename>为要下载的文件名。服务器会将该文件发送给客户端,完成下载。
以上是使用Flask编写WebAPI实现文件上传与下载功能的一个示例,你可以根据自己的需求进行二次开发。
