美文网首页
django---文件上传

django---文件上传

作者: a荷包蛋 | 来源:发表于2018-01-11 11:39 被阅读0次

    文件上传的思路:

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

    如果有:给文件一个上传路径,并利用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]

    相关文章

      网友评论

          本文标题:django---文件上传

          本文链接:https://www.haomeiwen.com/subject/rruznxtx.html