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实现注册登录系统
Aug 08 Python
python的socket编程入门
Jan 29 Python
Python3基于sax解析xml操作示例
May 22 Python
python监控文件并且发送告警邮件
Jun 21 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
Django 限制访问频率的思路详解
Dec 24 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
Django 构建模板form表单的两种方法
Jun 14 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 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
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
CI框架的安全性分析
2016/05/18 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
java直接调用python脚本的例子
2014/02/16 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python中实现switch功能实例解析
2018/01/11 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
python中如何写类
2020/06/29 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
上海方立数码笔试题
2013/10/18 面试题
年度献血先进个人事迹材料
2014/02/14 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
初一年级组工作总结
2015/08/12 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书