首页 > 其他分享 >文件上传

文件上传

时间:2023-11-06 15:55:29浏览次数:26  
标签:文件 request list upload myproject 上传

关于文件上传

修改myproject/myproject/urls.py 

添加路由

 # 上传文件
    path('upload/list/', upload.upload_list),

新建myproject/app01/views/upload.py

from django.shortcuts import render, HttpResponse

def upload_list(request):
    if request.method == "GET":
        return render(request, 'upload_list.html')
    print(request.POST) #请求中的数据
    print(request.FILES) #请求发过来的文件
    return HttpResponse("...")

新建myproject/app01/templates/upload_list.html

{% extends 'layout.html' %}

{% block content %}
    <div class="container">
        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
            <input type="text" name="username">
            <input type="file" name="avatar">
            <input type="submit" value="提交">
        </form>
    </div>
{% endblock %}

注意:

不添加 enctype="multipart/form-data"得到的是<QueryDict: {'csrfmiddlewaretoken': ['OeDA7cKmsOLEneNjULy6Isg0hn6GazDOYkLHPrfHrHOLMuLzNNMRuhENQASgz8o9'], 'username': ['123'], 'avatar': ['20200119123801_bjxpj.jpg']}>文件那返回的是文件名的字符串,并不是文件
添加 enctype="multipart/form-data"得到的是<QueryDict: {'csrfmiddlewaretoken': ['TNDydKrOMZ6Vcn6jdhrEhs34WSR1fMEZ3TLFVZW9LS92BD4z6jFp3hrRv5DBElpk'], 'username': ['222']}><MultiValueDict: {'avatar': [<InMemoryUploadedFile: 20200119123801_bjxpj.jpg (image/jpeg)>]}>

   添加后才能得到文件

修改myproject/app01/views/upload.py

from django.shortcuts import render, HttpResponse

def upload_list(request):
if request.method == "GET":
return render(request, 'upload_list.html')
# print(request.POST) #请求中的数据
# print(request.FILES) #请求发过来的文件

# 声明图片的对象
file_object = request.FILES.get("avatar")

# 分块进行存储
# file_object.name 表示图片上传时图片本身是什么名字,保存图片时就用什么名字
f = open(file_object.name, mode='wb')
for chunk in file_object.chunks():
f.write(chunk)
f.close()

return HttpResponse("上传成功")

  

 

 

 

 

标签:文件,request,list,upload,myproject,上传
From: https://www.cnblogs.com/kekeeleven/p/17812882.html

相关文章

  • Java IO教程 - Java文件操作
    文件创建我们可以使用File类的createNewFile()方法创建一个新文件:FiledummyFile=newFile("test.txt");booleanfileCreated=dummyFile.createNewFile();该createNewFile()方法创建一个新的空文件,如果有指定名称的文件不存在。如果文件已成功创建,则返回true;否则,返回fa......
  • Java IO教程- Java文件
    创建文件我们可以从中创建一个 File 对象路径名父路径名和子路径名URI(统一资源标识符)我们可以使用File类的以下构造函数之一创建一个文件:File(Stringpathname)File(Fileparent,Stringchild)File(Stringparent,Stringchild)File(URIuri)如果我们有一个文件路......
  • WEB端实现文件夹上传
    webkitdirectory属性。这个属性加上之后,就是选择文件夹,然后根据自己业务上传至后台;前端代码:<formaction="${ctxPath}/invoice/uploadFolder"method="post"enctype="multipart/form-data"> <inputname="chooseFolder"type="file"id="c......
  • 第四章 文件权限(一)
     4.1基本权限UGO:4.1.1设置文件属性与权限:在Linux系统中,每个文件和目录都有一组权限,用于控制对其的访问。这些权限被分为三个类别:用户(User)、组(Group)和其他人(Others)。每个类别都有三种权限:读取权限(R)、写入权限(W)和执行权限(X)。读取权限(R):允许用户查看文件内容或......
  • Python_pytest +文件名,报错—— zsh: command not found: pytest
     原因:由于“通过pip安装pytest不会使其成为系统命令,而是会将其安装到python”“-m命令将pytest作为其自己的命令运行,然后任何后续脚本都将作为参数。”解决:所以我们在命令窗口执行时应该在.py文件所在路径下执行  python-mpytest-vtest_wework.py这个问题终于......
  • Rust 在可执行文件中嵌入代码版本信息
    缘起我想要最终编译出的可执行文件中包含代码仓库的版本信息fnmain(){println!("HelloRustHub");//gitrev-parse--shortHEAD letcommit_hash="6c1b45f";println!("commit_hash:{}",commit_hash);}为了自动获取这个"6c1b45f"很自然的我们可以......
  • (六)Python之文件类型
    1、源码文件:Python源代码文件以“py”为扩展名,由于python语言解释,不需要编译2、字节代码文件Python源文件经编译后生成的扩展名为“.pyc”的文件名,依然由python加载执行,不过速度会提高,也会隐藏源码,根据官方文档说明,速度提高不是提高代码的执行速度,而是提高加载模块的速度。有......
  • 关于文件夹权限不够,引起的安装错误的处理方法
      文件夹没有权限,在更改文件夹的权限的时候会报各种错误,很多人在一报错的情况下,都不知道如何设置了。今天给大家带来一个用命令来处理这个问题的方法:假设文件路径为:C:\Windows\System32\en-US  比如:在安装软件的时候,报这个错误:用上面的设置文件权限的方法又报错的情况......
  • RStudio中,出现中文乱码问题的解决方案(修改文件编码)
    RStudio中,出现中文乱码问题的解决方案解决步骤:1、设置RStudio文本显示的默认编码:RStudio菜单栏的Tools->GlobalOptions2、选择General->DefaultTextEncoding,点击Change:3、在弹出的编码中,选择UTF-8编码。4、点击OK,然后再点击OK,保存设置。5、最后,在打开文件的时候,选择File->......
  • linux 文件名乱码 文件名出现问号 批量修改文件名
    linux文件名乱码文件名出现问号原因:创建文件的批处理文件使用windows编辑的,因为windows的换行是\r\n,而linux换行是\n,出现一些乱码如何处理: 1.linux批量重名名  2.dos2unix把Windows文件转换格式 LinuxShell批量重命名的方法1、删除所有的.bak后缀:rename's/\.bak$......