django---文件上传

2018-01-11  本文已影响0人  a荷包蛋

文件上传的思路:

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

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

上一篇下一篇

猜你喜欢

热点阅读