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 datetime
app = 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 =