解決Django文件上傳views報錯NoneType,其他能收到

Django通過form表單給後臺提交一個文件的時候,報錯

'NoneType' object has no attribute 'name'

 

前端:

<form accept-charset="UTF-8" action="跳轉鏈接" method="post">
    <div>
        <input type="file" name="t_photo" accept="image/*">
    </div>
</form>

後端收不到這個文件,但其他的字符串數據能正常收到。

 

解決:

1.首先看一下,上傳文件的form表單必須加上enctype="multipart/form-data",因爲默認情況下,編碼enctype的值是application/x-www-form-urlencoded,不能用於文件上傳,只有使用了multipart/form-data,才能完整的傳遞文件數據。

<form accept-charset="UTF-8" action="跳轉鏈接" 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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章