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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
python实现简易版计算器
Jun 22 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
opencv python 傅里叶变换的使用
Jul 21 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 Python
python获取array中指定元素的示例
Nov 26 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
Pytorch之Variable的用法
Dec 31 Python
Python网页解析器使用实例详解
May 30 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 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变量存储的详解
2013/06/13 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
JS实现随机点名器
2020/04/12 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
英国手机零售商:Metrofone
2019/03/18 全球购物
高中同学会活动方案
2014/08/14 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
纪录片信仰观后感
2015/06/08 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript