Django 解決上傳文件時,request.FILES為空的問題
用html的form上傳文件時,request.FILES為空,沒有收到上傳來的文件,但是在request.POST里找到了上傳的文件名(只是一個字符串)。
解決方法:
為form表單規(guī)定enctype屬性,其值為"multipart/form-data"。
enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如何對表單數(shù)據(jù)進行編碼。
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在發(fā)送前編碼所有字符(默認) |
multipart/form-data | 不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。 |
text/plain | 空格轉(zhuǎn)換為 “+” 加號,但不對特殊字符編碼。 |
<form action="xxx" method="xxx" enctype="multipart/form-data">
這樣在request.FILES就能找到上傳的文件啦 U*_*U
補充知識:解決Django文件上傳views報錯NoneType,其他能收到
Django通過form表單給后臺提交一個文件的時候,報錯
'NoneType' object has no attribute 'name'
前端:
<form accept-charset="UTF-8" action="跳轉(zhuǎn)鏈接" method="post"> <div> <input type="file" name="t_photo" accept="image/*"> </div> </form>
后端收不到這個文件,但其他的字符串?dāng)?shù)據(jù)能正常收到。
解決:
1.首先看一下,上傳文件的form表單必須加上enctype="multipart/form-data",因為默認情況下,編碼enctype的值是application/x-www-form-urlencoded,不能用于文件上傳,只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù)。
<form accept-charset="UTF-8" action="跳轉(zhuǎn)鏈接" method="post" enctype="multipart/form-data"> <div> <input type="file" name="t_photo" accept="image/*"> </div> </form>
2.再檢查一下,Django的view中接受文件不是在POST里,而是在FILE里。
request.POST.get('t_photo') # 不是在POST里
request.FILES.get('t_photo', None)
以上這篇Django 解決上傳文件時,request.FILES為空的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中sorted()函數(shù)之排序的利器詳解
sorted()函數(shù)是Python中的內(nèi)置函數(shù),用于對可迭代對象進行排序,下面這篇文章主要給大家介紹了關(guān)于Python中sorted()函數(shù)之排序的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08python pandas dataframe如何獲取除了指定列以外的所有列
這篇文章主要介紹了python pandas dataframe如何獲取除了指定列以外的所有列問題,具有很好的參考價值,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Python爬蟲:url中帶字典列表參數(shù)的編碼轉(zhuǎn)換方法
今天小編就為大家分享一篇Python爬蟲:url中帶字典列表參數(shù)的編碼轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python創(chuàng)建一個最簡單http webserver服務(wù)器的方法
這篇文章主要介紹了python創(chuàng)建一個最簡單http webserver服務(wù)器的方法,實例分析了Python操作http創(chuàng)建服務(wù)器端的相關(guān)技巧,需要的朋友可以參考下2015-05-05Python 操作mysql數(shù)據(jù)庫查詢之fetchone(), fetchmany(), fetchall()用法示例
這篇文章主要介紹了Python 操作mysql數(shù)據(jù)庫查詢之fetchone(), fetchmany(), fetchall()用法,結(jié)合實例形式分析了Python使用pymysql模塊的fetchone(), fetchmany(), fetchall()方法進行mysql數(shù)據(jù)庫查詢的操作技巧,需要的朋友可以參考下2019-10-10