django---文件上传

文件上传的思路:

文件上传:是否有文件进行判断

如果有:给文件一个上传路径,并利用uuid生成一个新的名字,与上传路径相拼接,构成一个新的文件                 上传路径

首先第一步:配置一个上传文件的页面:

#写一个方法获取模板

def test02(request):

    return render(request, 'user/test02.html')


第二步:上传文件

在settings.py文件里面配置图片上传路径

#处理文件上传的路径

MEDA_POOT=os.path.join(BASE_DIR,"static/media/")            

from django.conf import settings       ---------导入seeeings.py文件

#处理文件

def test03(request):

    # 接受文件

    file = request.FILES.get('filename',None)

    #此时获取的文件file是一个字典,所以可以file.name属性

    print(file)         

    if file:

        name=doFilePath(file.name)            ------可以把修改文件名字包装成一个方法

        #获取文件路径,并进行拼接

        path=os.path.join(settings.MEDA_POOT,'images',name)

        #读写文件

        with open(path,'wb') as f:

            #chuck ---把一个文件分成一块一块的,防止文件过大

            for chunk in file.chunks():

                f.write(chunk)

    else:

        pass

    return render(request, 'user/success.html')

#处理文件的名字

def doFilePath(filename):

    #因为uuid随机生成的名字重复的几率极小

    # name1=str(uuid.uuid1())

    # name2=os.path.splitext(filename)[1]

    # nameall=name1+name2

    # return nameall

    return str(uuid.uuid1()) + os.path.splitext(filename)[1]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,355评论 19 139
  • 本文包括:1、文件上传概述2、利用 Commons-fileupload 组件实现文件上传3、核心API——Dis...
    廖少少阅读 14,310评论 5 91
  • 如果想要满意的结果,在分配工作时也需要分配仔细,很少人会想的比上司还要多,分配仔细还有可能会落下,更何况分配就马虎。
    Ding欣欣阅读 734评论 0 0
  • 小时候,因为家里经济条件不好, 很少去电影院里看电影。那是非要等到节假日和老爹老妈死磨硬泡才能拿到几块钱去看电影。...
    Y老师阅读 3,649评论 1 2
  • 第 71 章 父子筹谋 第三部 李建成(之二十六) ...
    铁马老言阅读 1,878评论 0 1