文件上传的思路:
文件上传:是否有文件进行判断
如果有:给文件一个上传路径,并利用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]