视频:
pip install Flask-WTF Flask-Uploads
from flask import Flask
from flask_uploads import UploadSet, configure_uploads, patch_request_class
from flask_wtf import FlaskForm
from wtforms import FileField, SubmitField
from werkzeug.utils import secure_filename
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['UPLOADED_VIDEOS_DEST'] = 'uploads/' # 视频存储路径
# 配置上传大小
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制上传文件大小,例如16MB
patch_request_class(app, ('multipart/form-data', 'application/octet-stream')) # 支持大文件上传
# 创建上传集合
videos = UploadSet('videos', extensions=('mp4', 'avi', 'mov')) # 支持的文件类型
configure_uploads(app, videos)
class VideoUploadForm(FlaskForm):
video = FileField('Video')
submit = SubmitField('Upload Video')
@app.route('/upload', methods=['GET', 'POST'])
def upload_video():
form = VideoUploadForm()
if form.validate_on_submit():
filename = secure_filename(form.video.data.filename)
form.video.data.save(os.path.join(app.config['UPLOADED_VIDEOS_DEST'], filename))
return 'Video uploaded successfully!'
return render_template('upload.html', form=form)
if __name__ == "__main__":
app.run(host="0.0.0.0",port=8080)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload Video</title>
</head>
<body>
<h1>Upload a Video</h1>
<form method="POST" action="/upload" enctype="multipart/form-data">
{{ form.hidden_tag() }}
{{ form.video.label }} {{ form.video() }}<br>
{{ form.submit() }}<br>
</form>
</body>
</html>
Flask图片上传:

from flask import Flask, request, redirect, url_for, render_template
import os
from werkzeug.utils import secure_filename
from torchvision import datasets, transforms
from PIL import Image
import torch
import torch.nn.functional as F
from torch.nn import Conv2d,MaxPool2d,Linear,Sequential,Flatten
from torch import nn
app = Flask(__name__)
# 配置上传文件夹路径
UPLOAD_FOLDER = 'uploads/'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def index():
return render_template('upload.html') # 渲染上传页面
@app.route('/upload', methods=['POST'])
def upload_file():
if 'image' not in request.files:
return redirect(request.url)
file = request.files['image']
if file.filename == '':
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return "上传成功!"
if __name__ == "__main__":
app.run(host="0.0.0.0",port=8080)
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload Image</title>
</head>
<body>
<h1>Upload a new Image</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" required><br><br>
<input type="submit" value="Upload Image">
</form>
</body>
</html>