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 自动提交和抓取网页
Jul 13 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
python将秒数转化为时间格式的实例
Sep 16 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
python获取命令行参数实例方法讲解
Nov 02 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
python爬虫筛选工作实例讲解
Nov 23 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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
深入了解php4(2)--重访过去
2006/10/09 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
简单实现php上传文件功能
2017/09/21 PHP
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
3种python调用其他脚本的方法
2020/01/06 Python
python标识符命名规范原理解析
2020/01/10 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
竞争上岗演讲稿
2014/01/05 职场文书
文明寝室标语
2014/06/13 职场文书
读群众路线的心得体会
2014/09/03 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
二年级数学教学反思
2016/02/16 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
Python 中random 库的详细使用
2021/06/03 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers