第一种,直接上传
views
class TestimgForm(forms.Form):
title = fields.CharField()
img = fields.FileField()
def testimg(request):
import os,time
if request.method == 'GET':
img = TestimgForm()
return render(request, 'backend/testimg.html',{'img':img})
else:
obj = TestimgForm(request.POST, request.FILES)
if obj.is_valid():
img = request.FILES.get('img')
time = time.strftime('%Y%m%d%H%M%S')
ext = os.path.splitext(img.name)[1]
file_path = os.path.join('upload/article',time+ext)
#将图片重命名
f = open(file_path,'wb')
for line in imgs.chunks():
f.write(line)
f.close()
return HttpResponse('上传成功')第二种,写入数据库
html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<form action="testimg" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ img }}
<input type="submit" value="提交"/>
</form>
</body>
</html>views
class TestimgForm(forms.Form):
title = fields.CharField()
img = fields.FileField()
def testimg(request):
import os,time
if request.method == 'GET':
img = TestimgForm()
return render(request, 'backend/testimg.html',{'img':img})
else:
obj = TestimgForm(request.POST, request.FILES)
if obj.is_valid():
title = obj.cleaned_data['title']
img = obj.cleaned_data['img']
time = time.strftime('%Y%m%d%H%M%S')
ext = os.path.splitext(img.name)[1]
img.name = time + ext
Imgtest.objects.create(title=title,img=img)
return HttpResponse('上传成功')models.py
class Imgtest(models.Model):
title = models.CharField(verbose_name='标题',max_length=32,)
img = models.ImageField(verbose_name='缩略图',upload_to="./article/",
help_text="大小200*200,不超过200k",
default="/upload/article/common.jpg")完整代码
class TestimgForm(forms.Form): title = fields.CharField() img = fields.FileField() def testimg(request): import os,time if request.method == 'GET': img = TestimgForm() return render(request, 'backend/testimg.html',{'img':img}) else: obj = TestimgForm(request.POST, request.FILES) if obj.is_valid(): #(request.FILES['file']) # title = request.FILES.get('title') # img = request.FILES.get('img') title = obj.cleaned_data['title'] img = obj.cleaned_data['img'] time = time.strftime('%Y%m%d%H%M%S') ext = os.path.splitext(img.name)[1] img.name = time + ext # Imgtest.objects.create(title=title,img=img) # img是对象(文件大小,文件名称,文件内容。。。) # file_path = os.path.join('upload/article',time+ext) file_path = os.path.join('upload/article', img.name) f = open(file_path,'wb') for line in img.chunks(): f.write(line) f.close() return HttpResponse('...')