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 =