通过客户端上传视频文件到服务器端,服务器端接收文件并保存到对应目录生成一段代码并做详细注解
时间: 2024-03-11 20:50:15 浏览: 130
好的,以下是Python Flask框架中实现客户端上传视频文件到服务器端的代码示例:
```python
from flask import Flask, request, redirect, url_for
import os
app = Flask(__name__)
# 设置上传文件保存目录
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# 允许上传的文件类型
ALLOWED_EXTENSIONS = {'mp4', 'avi', 'mov', 'flv'}
# 判断文件类型是否合法
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
# 处理上传请求
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
# 如果文件不存在或者文件类型不合法,返回错误信息
if file and allowed_file(file.filename):
# 保存文件到指定目录
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return 'success'
else:
return 'error'
if __name__ == '__main__':
app.run(debug=True)
```
上述代码中,设置了上传文件保存目录为`uploads`,并通过`allowed_file()`函数判断上传的文件类型是否合法。当客户端通过`/upload`路由发送POST请求时,`upload_file()`函数会接收上传的文件并将其保存到指定目录中。
需要注意的是,该示例中没有进行文件大小的限制。对于文件大小的限制,可以通过在app.config中添加如下配置进行设置:
```python
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制上传文件大小为16MB
```
同时,如果要对上传的视频文件进行转码、压缩等处理操作,可以使用FFmpeg库进行处理。具体可以参考FFmpeg库的使用文档。
阅读全文