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

Flask + ajax上传文件(二)--多文件上传

Flask多文件上传完整教程

本教程将详细介绍如何使用Flask实现多文件上传功能,并使用时间戳为上传文件自动命名,避免文件名冲突。

一、环境准备

确保已安装Python和Flask

pip install flask

项目结构

flask_upload/
├── app.py
├── upload/                # 上传文件保存目录
└── templates/└── index.html         # 前端页面
└── static/├── js/                # jQuery等JS文件└── css/               # CSS样式文件

二、后端实现 (app.py)

1. 基础配置

import os
import json
from flask import Flask, render_template, request, Response
from datetime import datetimeapp = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'upload'
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)

2. 时间戳文件名生成函数

def generate_timestamp_filename(original_filename):"""生成基于时间戳的文件名"""# 获取文件扩展名ext = os.path.splitext(original_filename)[1]# 生成时间戳格式:YYYYMMDD_HHMMSS_SSS(精确到毫秒)timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f")[:-3]return f"upload_{timestamp}{ext}"

文件名示例upload_20230815_143045_123.jpg

3. 多文件上传路由

@app.route('/upload_mutli_file', methods=['POST'])
def upload_mutli_file():try:# 获取上传的文件列表uploaded_files = request.files.getlist('upload_files[]')saved_files = 

相关文章:

  • 【数据分析】酵母实验多指标数据的 R 语言分析与可视化
  • Day-3 应急响应实战
  • 深入解析微软MarkitDown:原理、应用与二次开发指南
  • 使用深度 Q 学习解决Lunar lander问题
  • arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
  • Web3钱包开发功能部署设计
  • Pikachu靶场
  • 【LLM+Code】Windsurf Agent 模式PromptTools详细解读
  • Rundeck 介绍及安装:自动化调度与执行工具
  • 如何在 Odoo 18 中配置自动化动作
  • 第54讲:总结与前沿展望——农业智能化的未来趋势与研究方向
  • WAMP设置外网访问
  • DNS主从同步及解析
  • 深度对比评测:n8n vs Coze(扣子) vs Dify - 自动化工作流工具全解析
  • Flink 源码编译
  • 数据库进阶之MySQL 程序
  • 精益数据分析(19/126):走出数据误区,拥抱创业愿景
  • 浅谈国产数据库多租户方案:提升云计算与SaaS的资源管理效率
  • arm64适配系列文章-第三章-arm64环境上mariadb的部署
  • Spring 过滤器详解:从基础到实战应用
  • 一夜跌去200美元,黄金巨震冲上热搜!涨势已近尾声?
  • 哈萨克斯坦一名副市长遭枪击
  • 罗马教皇方济各去世
  • 被指违反代理协议遭南航暂停售票资格,去哪儿网:今起恢复
  • 人民网评:“中国传递爱而不是关税”
  • 对话地铁读书人|来自法学副教授的科普:读书日也是版权日