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 = 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78740.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78740.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78740.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多級緩存入門:Caffeine、Lua、OpenResty、Canal

之前寫過——Google Guava Cache簡介 本文系統學習一下多級緩存 目錄 0.什么是多級緩存商品查詢業務案例導入1.JVM進程緩存初識Caffeine實現JVM進程緩存2.Lua語法入門HelloWorld數據類型、變量和循環函數、條件控制3.Nginx業務編碼實現多級緩存安裝OpenRestyOpenResty快速入門…

Python + Playwright:如何在Docker 容器運行測試?

Python + Playwright:如何在Docker 容器運行測試? 前言一、簡介二、環境準備1. 安裝 DockerWindows 用戶macOS 用戶Linux 用戶(以 Ubuntu 為例)2. 啟動 browserless 服務拉取 browserless 鏡像啟動 browserless 容器驗證 browserless 是否啟動成功三、創建自動化測試項目1.…

語音合成之四大語言模型(LLM)與TTS的深度融合

基于LLM的語音合成 1.技術架構1.1 LlaSA1.2 CosyVoice (和 CosyVoice2)1.3 SparkTTS 2 特性對比2.1 零樣本語音克隆2.2 多語種支持2.3 可控語音生成2.4 計算效率和模型大小 總結 當前,在大型語言模型(Large Language Models,LLMs)…

使用 Conda 創建新環境

使用 Conda 創建新環境 在使用 Conda 進行包管理和環境隔離時,創建新環境是一個非常常見的操作。通過創建獨立的環境,可以避免不同項目之間的依賴沖突,并且能夠靈活地管理各個項目的運行環境。 以下是使用 Conda 創建和管理新環境的詳細步驟…

Unity AssetBundle (AB) 打包詳解

AssetBundle 是 Unity 提供的一種資源打包機制,允許開發者將游戲資源(如模型、紋理、預制體等)打包成獨立的文件,便于動態加載和熱更新。 一、AssetBundle 基礎概念 1. 什么是 AssetBundle 資源壓縮包,包含序列化資源…

Python flask入門

Python flask入門 一、路由1.1 常規路由1.2 動態路由1.3 路由的其他高級用法 二、變量規則2.1 示例1:字符串類型(默認)2.2 示例2:整數類型2.3 示例3:路徑類型 三、自定義轉換器3.1 核心組件詳解3.2 工作流程詳解 四、f…

AI賦能守護行車安全新防線,基于YOLOv5全系列【n/s/m/l/x】參數模型開發構建駕駛車輛場景下駕駛員疲勞分心駕駛行為智能檢測預警系統

在當今社會,隨著科技生產力的飛速發展,汽車早已成為人們日常出行不可或缺的交通工具。它不僅極大地提高了人們的出行效率,也為生活帶來了諸多便利。然而,隨著汽車保有量的不斷增加,交通安全問題也日益凸顯。疲勞駕駛和…

onloyoffice歷史版本功能實現,版本恢復功能,編輯器功能實現 springboot+vue2

文章目錄 onloyoffice歷史版本功能實現,版本恢復功能,編輯器功能實現 springbootvue2前提 需要注意把這個 (改成自己服務器的ip或者域名) 改成 自己服務器的域名或者地址我使用的onloyoffice版本 8.1.3.41. onloyoffice服務器部署 搜索其他文章2. 前段代…

概率論與統計(不確定性分析)主要應用在什么方面?涉及到具體知識是什么?

用戶問的是概率論與統計(不確定性分析)的主要應用方面,涉及的具體知識以及具體公式。首先,我需要確定概率論與統計在哪些領域有應用,比如工程、金融、醫學、數據科學等等。然后,具體知識部分應該包括概率論…

如何利用快照與備份快速恢復服務器的數據

在服務器上利用**快照(Snapshot)**和**備份(Backup)**快速恢復數據,可顯著減少停機時間并確保業務連續性。以下是具體操作步驟和最佳實踐: --- ### **1. 快照(Snapshot)恢復** **適…

安卓APP開發項目源碼

在移動互聯網蓬勃發展的今天,安卓應用幾乎覆蓋了人們生活的方方面面。從社交、購物,到醫療、教育,APP 的需求呈指數級增長。然而,如何高效、低成本地開發一款質量可靠的安卓應用,仍是很多開發者和團隊關注的核心問題。…

遨游三防|30200mAh、雙露營燈三防平板,見證堆料天花板

在工業4.0與智能化轉型的浪潮中,專業設備對性能、防護及場景適應性的要求日益嚴苛。遨游通訊作為國家級高新技術企業,依托“危、急、特”場景的深耕經驗,推出的旗艦級產品AORO-P300三防平板,以30200mAh超大容量電池、雙露營燈設計…

【Python】Matplotlib:立體永生花繪制

本文代碼部分實現參考自CSDN博客:https://blog.csdn.net/ak_bingbing/article/details/135852038 一、引言 Matplotlib作為Python生態中最著名的可視化庫,其三維繪圖功能可以創造出令人驚嘆的數學藝術。本文將通過一個獨特的參數方程,結合極…

OpenCV 圖形API(57)顏色空間轉換-----將圖像從 RGB 色彩空間轉換為 YUV 色彩空間函數RGB2YUV()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 將圖像從 RGB 色彩空間轉換為 YUV 色彩空間。 該函數將輸入圖像從 RGB 色彩空間轉換為 YUV。R、G 和 B 通道值的常規范圍是 0 到 255。 在進行線…

Kubernetes(K8S)入門階段詳細指南

Kubernetes(K8S)入門階段詳細指南 一、容器技術基礎:Docker核心操作與理解 1.1 Docker核心操作 鏡像管理: 拉取鏡像:docker pull ubuntu(以Ubuntu為例)查看本地鏡像:docker images刪除鏡像:docker rmi <image_id>容器生命周期管理: 啟動容器:docker run -d -…

AI大模型學習十一:?嘗鮮ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,實戰運行成功

一、說明 沒意思&#xff0c;devbox私有化不支持&#xff0c;看來這個開源意義不大&#xff0c;和宣傳差距很大啊&#xff0c;那devbox就不用玩 用了ubuntu 25.04&#xff0c;內核為GNU/Linux 6.14.0-15-generic x86_64&#xff0c;升級了部分image&#xff0c;過程曲折啊 se…

[GXYCTF2019]Ping Ping Ping

解題步驟 1、先使用 內斂執行 查看當前的php文件 執行 命令執行 發現空格被過濾 ?ip127.0.0.1$IFS|$IFSwhomi 還有一個點就是這個 執行的命令是不能進行拼接的 可能就是被過濾了 | 所以我們使用 ; 進行繞過一下 空格過濾代替 $IFS ${IFS} ${IFS}$9 //這里$1到$9都可以 $IFS$1…

重溫TCP通信過程

文章目錄 1. 慢啟動2. 擁塞避免 3. 快速重傳和快速恢復 初識tcp報文 我們先來簡單認識一下報文的格式,具體理解需要后面詳細介紹 源端口和目的端口:顧名思義就是標識傳輸雙方的信息首部長度:指的是TCP報頭的長度,換句話來說,我們需要用一個屬性來描述報頭的長度,就說明TCP的報…

力扣HOT100之鏈表:23. 合并 K 個升序鏈表

這道題我是用最淳樸最簡單的思路去做的&#xff0c;用一個while循環持續地將當前遍歷到的最小值加入到合并鏈表中&#xff0c;while循環中使用一個for循環遍歷整個指針數組&#xff0c;將其中的最小值和對應下標記錄下來&#xff0c;并將其值加入到合并鏈表中&#xff0c;同時對…

Spring Boot 支持政策

&#x1f9d1;&#x1f4bb; Spring Boot 支持政策 ?? Andy Wilkinson 于2023年12月7日編輯本頁 32次修訂 &#x1f4cc; 核心政策 &#x1f6e1;? VMware Tanzu 開源支持政策 Spring Boot 針對關鍵錯誤和安全問題提供支持 &#x1f4c6; 版本支持周期 1?? 主要版本&a…