当前位置: 首页 > news >正文

Flask视频和图片上传

视频:

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_filenameapp = 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 nnapp = Flask(__name__)# 配置上传文件夹路径
UPLOAD_FOLDER = 'uploads/'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDERdef 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>

相关文章:

  • win11装vm虚拟机创建Linux常见问题!
  • 线上线下融合驱动:开源链动2+1模式与AI智能名片赋能高价值社群生态的机制研究
  • 常见的Dolphin Scheduler报错
  • Docker Compose部署Spring Cloud 微服务系统
  • 腾讯云搭建web服务器的方法
  • extern关键字:C/C++跨文件编程利器
  • FPGA基础 -- Verilog行为级建模之时序控制
  • 回溯----5.括号生成
  • 如何通过 5 种方式向 Android 手机添加音乐
  • ubuntu下python版本升级导致pyqt不能正常运行解决
  • MSYS2 环境下 Python 开发配置(结合 PyCharm)使用笔记
  • RNN为什么不适合大语言模型
  • html中的table标签以及相关标签
  • ESLint从入门到实战
  • 智净未来:华为智选IAM以科技巧思优化家庭健康饮水体验
  • 2025年中总结
  • Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)
  • Linux系统网络服务之DCHP服务
  • RabbitMQ七种工作模式
  • Kafka入门及实战应用指南
  • 新手怎么做html5网站/网络销售怎么做
  • 佛山网站建设维护/关键词网站
  • 网站设计排版怎么做/北京企业网络推广外包
  • 上海网站建设报价/百度高级搜索功能
  • 营销网站建设品牌企业/免费制作详情页的网站
  • wordpress判断子分类/南宁seo推广公司