当前位置: 首页 > 编程笔记 >

Django 解决上传文件时,request.FILES为空的问题

徐茂材
2023-03-14
本文向大家介绍Django 解决上传文件时,request.FILES为空的问题,包括了Django 解决上传文件时,request.FILES为空的问题的使用技巧和注意事项,需要的朋友参考一下

用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为空的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我正在使用mvc3,并尝试创建一系列ajax表单,每个表单都在一个页面内上载一个文件。这是页面的视图: 然后,Go()函数遍历ajax表单,检查每个表单上的所有3个部分(dressid,dresscaption和fileitem)是否都是非空的,并且调用提交了做的表单,从而启动了异步上传。 这是局部视图: 我已经用multipart属性标记了每种形式。生成页面后,我得到以下信息: 一切

  • 本文向大家介绍解决springboot项目上传文件出现临时文件目录为空的问题,包括了解决springboot项目上传文件出现临时文件目录为空的问题的使用技巧和注意事项,需要的朋友参考一下 最近写文件上传到服务器读取的代码,前端使用FormData上传,服务端用MultipartFile接收,自己测试了下MultipartFile对象有什么东西,结果一般属性都能出来,测试getInputStrea(

  • 我上传文件有问题。我正在使用codeigniter框架和dropzone。js上传文件。 我认为: 控制器: 问题是上传的文件返回为空: 数组(1){["upload_data"]= 我试图转储fileToUpload输入的POST值,也是空的。是不是我忽略了什么?

  • 主要内容:上传图片对于Web应用程序,以便能够上传文件(资料图片,歌曲,PDF格式,文字......),它通常是很有用的。让我们在这一节中来讨论如何使用Django上传文件。 上传图片 在开始开发图片上传之前,请确保Python的图像库(PIL)已经安装。现在来说明上传图片,让我们创建一个配置文件格式,在 myapp/forms.py - 正如你所看到的,这里的主要区别仅仅是 forms.ImageField。Im

  • 本文向大家介绍解决layui上传文件提示上传异常,实际文件已经上传成功的问题,包括了解决layui上传文件提示上传异常,实际文件已经上传成功的问题的使用技巧和注意事项,需要的朋友参考一下 layui上传文件提示上传异常,实际文件已经上传成功 原因:上传回调的方法接收的参数应该是json格式的,之前返回的是String,所以一直走异常的方法 以上这篇解决layui上传文件提示上传异常,实际文件已经上

  • Django 的文件上传 在学习完 Django 的 Form 模块后,我们就用最后一个常用的文件上传的场景来结束本部分的内容。 1. Django 的文件上传实验 同样,话不多说,我们先通过两个上传的例子来看看 Django 的上传功能。 实验1:简单文件上传 准备本地文件,upload.txt,上传到服务器的 /root/test/django 目录下; 准备模板文件,显示上传按钮: <for