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 06 Python
python采用getopt解析命令行输入参数实例
Sep 30 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
Python读取数据集并消除数据中的空行方法
Jul 12 Python
pandas 透视表中文字段排序方法
Nov 16 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
Python中调用其他程序的方式详解
Aug 06 Python
python 三元运算符使用解析
Sep 16 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 Python
python中的测试框架
Nov 13 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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 递归效率分析
2009/11/24 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
jquery随意添加移除html的实现代码
2011/06/21 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
营业经理岗位职责
2013/11/10 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
Java SSM配置文件案例详解
2021/08/30 Java/Android