目的在于将上传的图片保存到静态资源目录中
1.配置静态资源目录
# settting.py
STATIC_URL = '/static/'
STATICFLIES_DIRS = (os.path.join(BASE_DIR,"static"))
2.假如在某路径下有一个表单
<form method="post" action="{% url 'upload' %}" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="img"><br>
<input type="submit" value="上传">
</form>
这个表单将图片文件上传到name为upload的视图中,方式为post
3.获取并且保存
from django.http import HttpResponse
from PIL import Image
from time import time
def upload(request):
myfile = request.FILES.get('img',None)
if not myfile:
return HttpResponse('上传失败')
# 加工文件名
filename = str(time())+"."+myfile.name.split('.').pop()
# 写入文件的操作
destination = open("./static/pics/"+filename,"wb+")
for chunk in myfile.chunks(): # 分块写入文件
destination.write(chunk)
destination.close()
# 执行图片缩放
im = Image.open("./static/pics/"+filename)
# 缩放到75*75(缩放后的宽高比例不变):
im.thumbnail((75, 75))
# 把缩放后的图像用jpeg格式保存:
im.save("./static/pics/s_"+filename,None)
return HttpResponse('<h3>上传成功</h3>')
需要用到pillow,下载命令:pip install pillow
4.查看图片
在项目目录-static-pics中查看到图片