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安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
python实现杨辉三角思路
Jul 14 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
python实现动态创建类的方法分析
Jun 25 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
Django框架 querySet功能解析
Sep 04 Python
Python 使用生成器代替线程的方法
Aug 04 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
基于Python爬取素材网站音频文件
Oct 21 Python
python实现一个简单RPC框架的示例
Oct 28 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的闭合标签“?&gt;”
2014/08/28 PHP
php微信公众平台开发类实例
2015/04/01 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
八项规定整改方案
2014/10/01 职场文书
出纳岗位职责范本
2015/03/31 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
七年级作文之环保作文
2019/10/17 职场文书