Flask视频和图片上传

发布于:2025-06-19 ⋅ 阅读:(18) ⋅ 点赞:(0)

视频:

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>


网站公告

今日签到

点亮在社区的每一天
去签到