一、獲取上傳的文件
當我們的應用程序允許用戶上傳文件時,我們必須使用Python的request庫來處理請求。與POST請求響應一樣,request庫的文件上傳處理也很簡單。
from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files.get('file') # 處理文件 return "上傳成功!" if __name__ == '__main__': app.run()
在上面的代碼中,我們定義了一個名為upload_file()的函數,該函數接受POST請求並返回一個字符串上傳成功的消息。其中,request對象中的files屬性是一個字典,它包含一系列上傳文件的元素,每個元素由上傳文件名和請求文件的文件數據構成。我們使用request.files.get(‘file’)方法來獲取文件數據。
二、獲取文件名
在上傳文件後,我們需要獲得文件名以執行特定的操作,如保存文件,記錄文件上傳時間等。可以使用Python的os.path模塊的split()方法來獲取文件名。
import os file = request.files.get('file') filename = os.path.split(file.filename)[-1]
在上面的代碼中,我們使用split()方法來獲取文件名。這與os.path模塊提供的基於文件路徑的操作非常相似,其只需要傳入函數需要處理的文件路徑即可。然後使用中括號[-1]獲取文件名的最後一個元素,它是列表返回的最後一個元素。
三、獲取文件擴展名
文件擴展名是指文件名中的最後一個點(.)後面的字符串部分,通常用於標識文件類型。在Python中,我們可以使用split()方法來獲取文件擴展名。
file = request.files.get('file') extension = os.path.splitext(file.filename)[-1]
在上面的代碼中,我們使用splitext()方法來獲取文件擴展名,該方法將文件名作為參數並返回一個元組。該元組包含文件名和擴展名。我們可以使用[1]索引獲取擴展名。
四、保存上傳的文件
上傳文件後,我們需要將它保存到服務器上的某個位置。藉助Python的os模塊,我們可以使用下面的代碼將文件保存到當前目錄的uploads文件夾中:
file = request.files.get('file') filename = os.path.join('uploads', file.filename) file.save(filename)
在上面的代碼中,我們將文件名連接到uploads文件夾的上方,使用join()方法快速構建文件名。然後,我們使用save()方法將文件保存到當前目錄。
五、總結
文件上傳和處理是Web應用程序的基本功能之一,request庫提供了許多用於處理文件上傳的方法和函數,包括提取文件名、文件擴展名和保存文件等。使用這些方法和函數,我們可以輕鬆地處理用戶上傳的文件。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254865.html