在用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很明顯,上傳的檔案的確在其中,但是當用 request.files['myfiles'] 得到的確是最後乙個。 而不能得到兩個檔案。跟蹤**發現,request.files 的型別為 multivaluedict,這種字典類是特殊定義的,如果需要取得list 需要呼叫 getlist 方法,看到這裡,豁然開朗,下面是得到上傳的多個檔案與處理的邏輯:<
multivaluedict
:>
files其實很簡單的,就是不細心,另外django 預設是只處理單個檔案上傳的,要一次性批量處理多個檔案上傳就得採用這種方法。=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 寫檔案上傳的時候,從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...