django 一次性上傳多個檔案, 批量上傳

2021-07-02 20:07:21 字數 1133 閱讀 3829

在用django 寫檔案上傳的時候,從request.files['myfiles'] 獲取到的檔案始終只有乙個, 但在html頁面上明明用 html5 的 檔案控制項選擇了多個檔案,用的是chrome  瀏覽器,一次可以選擇多個檔案上傳。在 pydev 開啟debug模式,檢視request 物件,發現上傳的多個檔案確實在request物件中,但為什麼 用request.files['myfiles'] 卻只能得到乙個呢?

前端 html5 上傳控制項, 我用了jquery file upload 

type

="file"

name

="myfiles"

multiple=""

>

選擇多個檔案之後, 然後提交請求,開啟pydev debug 模式,檢視request內容:

其中request.files 的內容為如下:

multivaluedict

:<

multivaluedict

:>

很明顯,上傳的檔案的確在其中,但是當用 request.files['myfiles'] 得到的確是最後乙個。 而不能得到兩個檔案。跟蹤**發現,request.files 的型別為 multivaluedict,這種字典類是特殊定義的,如果需要取得list 需要呼叫 getlist  方法,看到這裡,豁然開朗,下面是得到上傳的多個檔案與處理的邏輯

files 

=request

.files

.getlist

('myfiles'

)for

f in

files

:destination

=open

('d:/temp/'+f

.name

,'wb+'

)for

chunk inf

.chunks

():destination

.write

(chunk

)destination

.close

()

其實很簡單的,就是不細心,另外django 預設是只處理單個檔案上傳的,要一次性批量處理多個檔案上傳就得採用這種方法。

感謝原作者分享。

django 一次性上傳多個檔案, 批量上傳

在用django 寫檔案上傳的時候,從request.files myfiles 獲取到的檔案始終只有乙個,但在html頁面上明明用 html5 的 檔案控制項選擇了多個檔案,用的是chrome 瀏覽器,一次可以選擇多個檔案上傳。在 pydev 開啟debug模式,檢視request 物件,發現上傳...

檔案操作 一次性產生多個檔案

函式原型為 int sprintf char str,const char format,1 根據格式從字串中提取資料。如從字串中取出整數 浮點數和字串等。2 取指定長度的字串 3 取到指定字元為止的字串 4 取僅包含指定字符集的字串 5 取到指定字符集為止的字串 其實說白了,這個函式用法跟prin...

設計階段檔案的一次性上傳多個附件

nclick opentargetwin uploadwin jdsj upload jdsjwj all.jsp?id id 600,400 value 一次性上傳 1 isadd?請先儲存,再使用一次性上傳 這個一次性上傳附件 要給他傳進去id號 id在頁面要經過判斷。string id str...