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中在脚本中引用其他文件函数的实现方法
Jun 23 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
Python中optparser库用法实例详解
Jan 26 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python ---lambda匿名函数介绍
Mar 13 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 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边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP的explode和implode的使用说明
2011/07/17 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
基于javascript的拖拽类封装详解
2019/04/19 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
Python MD5加密实例详解
2017/08/02 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
Python基于Faker假数据构造库
2020/11/30 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
防沙治沙典型材料
2014/05/07 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
2014年英语工作总结
2014/12/20 职场文书
教师求职简历自我评价
2015/03/10 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技