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继承和抽象类的实现方法
Jan 14 Python
Python中的各种装饰器详解
Apr 11 Python
Django基础之Model操作步骤(介绍)
May 27 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
python Opencv将图片转为字符画
Feb 19 Python
在python中安装basemap的教程
Sep 20 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
python 如何区分return和yield
Sep 22 Python
python爬取某网站原图作为壁纸
Jun 02 Python
Python多线程 Queue 模块常见用法
Jul 04 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
PHP文本操作类
2006/11/25 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
vue组件生命周期详解
2017/11/07 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
python利用datetime模块计算时间差
2015/08/04 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Python接口开发实现步骤详解
2020/04/26 Python
详解python如何引用包package
2020/06/07 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
网络技术专业推荐信
2014/02/20 职场文书
班级安全教育实施方案
2014/02/23 职场文书
银行委托书范本
2014/09/28 职场文书
新学期家长寄语2016
2015/12/03 职场文书