zoukankan      html  css  js  c++  java
  • Django学习笔记之文件上传

    Django在处理文件上传的时候,文件数据被保存在了request.FILES。FILES中的每个键为中的name
    设置文件的存储路径:
    1.在项目根目录下static中创建media文件夹
    2.图片上传后,会被保存到“/static/media/文件”
    3.打开settings.py文件,增加media_root

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static')
    ]
    # 文件上传路径
    MEDIA_ROOT = os.path.join(BASE_DIR,'static/media')

    模板文件:

    <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %}
        <input type="file" name= "file"> <br>
        <input type="submit" value="上传">
        </form>

    FILES只有在请求的方法为POST 且提交的带有enctype=”multipart/form-data” 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象

    视图函数:

    # views.py
    import os
    from Django_框架.settings import MEDIA_ROOT
    
    
    def upload_test(request):
        if request.method == 'GET':
            return render(request,'douban/file_upload.html')
        elif request.method == 'POST':
            # 通过request.FILE获取到文件
            f1 = request.FILES['file']
            print(f1.name) # 获取到文件的名字
            f1_name = os.path.join(MEDIA_ROOT,f1.name)
            print(f1_name) # 文件的完整路径
            with open(f1_name,'wb') as ff:
                for c in f1.chunks():
                    ff.write(c)
            return HttpResponse('上传文件成功')
        else:
            return HttpResponse('上传文件 ERROR')
  • 相关阅读:
    Win7 64位下ProxyCap代理Java
    kafka一个诡异错误
    linux下oracle修改、新建用户并授权
    es常用查询
    linux 下启动tomcat报错 Cannot find ./catalina.sh
    linux虚拟机添加端口访问
    Linux下启动Oracle服务和监听程序
    es基础
    mysql授权远程任意人登录
    添加POI导出excel通用工具类
  • 原文地址:https://www.cnblogs.com/shuai06/p/12397504.html
Copyright © 2011-2022 走看看