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从MP3文件获取id3的方法
Jun 15 Python
python 性能提升的几种方法
Jul 15 Python
Python探索之自定义实现线程池
Oct 27 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
python 自定义装饰器实例详解
Jul 20 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
Java多线程实现四种方式原理详解
Jun 02 Python
解决pip install psycopg2出错问题
Jul 09 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
Python中使用subprocess库创建附加进程
May 11 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/19 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
Javascript 继承实现例子
2009/08/12 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python 拼接文件路径的方法
2018/10/23 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
什么时候需要进行强制类型转换
2016/09/03 面试题
建筑工程技术应届生求职信
2013/11/17 职场文书
校园门卫岗位职责
2013/12/09 职场文书
小学家长会邀请函
2014/01/23 职场文书
培训专员岗位职责
2014/02/26 职场文书
仓库主管岗位职责
2014/03/02 职场文书
工会工作先进事迹
2014/08/18 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
出纳试用期自我评价
2015/03/10 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
小学语文教学随笔
2015/08/14 职场文书
2022年四月新番
2022/03/15 日漫