久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django 解決上傳文件時(shí),request.FILES為空的問(wèn)題

瀏覽:7日期:2024-10-02 08:23:30

用html的form上傳文件時(shí),request.FILES為空,沒(méi)有收到上傳來(lái)的文件,但是在request.POST里找到了上傳的文件名(只是一個(gè)字符串)。

解決方法:

為form表單規(guī)定enctype屬性,其值為'multipart/form-data'。

enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如何對(duì)表單數(shù)據(jù)進(jìn)行編碼。

值 描述 application/x-www-form-urlencoded 在發(fā)送前編碼所有字符(默認(rèn)) multipart/form-data 不對(duì)字符編碼。在使用包含文件上傳控件的表單時(shí),必須使用該值。 text/plain 空格轉(zhuǎn)換為 “+” 加號(hào),但不對(duì)特殊字符編碼。

<form action='xxx' method='xxx' enctype='multipart/form-data'>

這樣在request.FILES就能找到上傳的文件啦 U*_*U

補(bǔ)充知識(shí):解決Django文件上傳views報(bào)錯(cuò)NoneType,其他能收到

Django通過(guò)form表單給后臺(tái)提交一個(gè)文件的時(shí)候,報(bào)錯(cuò)

’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>

后端收不到這個(gè)文件,但其他的字符串?dāng)?shù)據(jù)能正常收到。

解決:

1.首先看一下,上傳文件的form表單必須加上enctype='multipart/form-data',因?yàn)槟J(rèn)情況下,編碼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 解決上傳文件時(shí),request.FILES為空的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
主站蜘蛛池模板: 嘉义市| 社会| 安溪县| 隆子县| 樟树市| 精河县| 闵行区| 荃湾区| 墨江| 栾城县| 湘潭县| 黔江区| 上林县| 日喀则市| 富宁县| 南靖县| 东城区| 许昌县| 广宗县| 荔浦县| 漯河市| 闽侯县| 尼玛县| 滦平县| 郎溪县| 宿迁市| 延庆县| 会理县| 黔南| 汤阴县| 嘉荫县| 奉化市| 深水埗区| 呈贡县| 东辽县| 额敏县| 辽中县| 同心县| 塘沽区| 武汉市| 卫辉市|