Django 解决上传文件时,request.FILES为空的问题


Posted in Python onMay 20, 2020

用html的form上传文件时,request.FILES为空,没有收到上传来的文件,但是在request.POST里找到了上传的文件名(只是一个字符串)。

解决方法:

为form表单规定enctype属性,其值为"multipart/form-data"。

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

描述
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain 空格转换为 “+” 加号,但不对特殊字符编码。

<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="跳转链接" 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)

以上这篇Django 解决上传文件时,request.FILES为空的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
python输出指定月份日历的方法
Apr 23 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
Django用户认证系统 User对象解析
Aug 02 Python
python3中eval函数用法使用简介
Aug 02 Python
浅谈Python 递归算法指归
Aug 22 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
python opencv实现简易画图板
Aug 27 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
Python常用GUI框架原理解析汇总
Dec 07 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
使用 django orm 写 exists 条件过滤实例
May 20 #Python
django 解决自定义序列化返回处理数据为null的问题
May 20 #Python
python实现126邮箱发送邮件
May 20 #Python
python3.6使用SMTP协议发送邮件
May 20 #Python
Python操作Excel把数据分给sheet
May 20 #Python
python3通过qq邮箱发送邮件以及附件
May 20 #Python
学会python自动收发邮件 代替你问候女友
May 20 #Python
You might like
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
Javascript 布尔型分析
2008/12/22 Javascript
input的focus方法使用
2010/03/13 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
Python字典底层实现原理详解
2019/12/18 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
高级工程师岗位职责
2013/12/15 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
学校捐书活动总结
2015/05/08 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js