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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
python下载文件时显示下载进度的方法
Apr 02 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
python安装教程
Feb 28 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
Django 路由系统URLconf的使用
Oct 11 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 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 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python中列表和元组的区别
2017/12/18 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
pyqt5中动画的使用详解
2020/04/01 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
教师实习期自我鉴定
2013/10/06 职场文书
出纳岗位职责模板
2013/11/27 职场文书
班组长的岗位职责
2013/12/09 职场文书
一年级小学生评语
2014/04/22 职场文书
商场促销活动总结
2014/07/10 职场文书
高中生逃课检讨书
2014/10/10 职场文书
初中班主任工作随笔
2015/08/15 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server