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中的多进程
Nov 06 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
python实现C4.5决策树算法
Aug 29 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python3.5集合及其常见运算实例详解
May 01 Python
python实现websocket的客户端压力测试
Jun 25 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
python装饰器使用实例详解
Dec 14 Python
python函数enumerate,operator和Counter使用技巧实例小结
Feb 22 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 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+MySQL投票系统的设计和实现分享
2012/09/23 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
import的本质解析
2017/10/30 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
毕业生教师求职信
2013/10/20 职场文书
毕业生的自我评价分享
2013/12/18 职场文书
2014年会策划方案
2014/05/11 职场文书
出生医学证明书
2014/09/15 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
CSS3实现指纹特效代码
2022/03/17 HTML / CSS