防止图片重名
def md5_(): #生成一个永不重复的
md5 = hashlib.md5()
md5.update(str(time.time()).encode())
return md5.hexdigest()
if file:
base_path = settings.STATICFILES_DIRS[0] #拿到当前的静态目录
sig = file.name.split('.')[-1] #取到上传文件后缀
file_name = md5_() + '.' + sig #生成一个永不重复得名字
file_path = os.path.join(base_path,'img/' + file_name) #把当前目录和存储文件夹和文件名拼接起来
with open(file_path,'wb') as fp: #设置本地存储位置
if file.multiple_chunks: #判断如果是大文件的情况下
for buf in file.chunks(): #for循环遍历迭代器 读取存储文件内容
fp.write(buf) #本地把数据写入
else:
fp.write(file.read()) #小文件直接全部写入 不需要生成迭代器
# return HttpResponse('图片上传成功')
models.Student.objects.create(
name = name,
age = age,
gender = gender,
img = 'img/' + file_name,
ip = ip,
)