版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z564359805/article/details/89949585
settings.py中:
# 增加
STATIC_URL = '/static/'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,'static'),
]
MEDIA_ROOT = os.path.join(BASE_DIR,'static/media')
views.py中:
from django.shortcuts import render
from django.http import HttpResponse
from django.conf import settings
import os
# 上传图片
def upladPic(request):
return render(request,'uploadPic.html')
# 接收图片
def uploadHandle(request):
if 'pic1' in request.FILES:
f1 = request.FILES['pic1']
# print(f1.name) # 上传文件名字
# print(f1.size) # 上传文件大小
fsize = float('%.2f'%(f1.size/1024)) # 换算成KB保留两位小数
pic_list = ['jpg','gif','png','jpeg']
up_file = f1.name
# 校验图片格式是不是图片格式
img_format = up_file.split('.')[-1].lower()
if img_format in pic_list:
if fsize <= 500:
# fname = ('%s/%s'%(settings.MEDIA_ROOT,f1.name))
fname = os.path.join(settings.MEDIA_ROOT,f1.name)
with open(fname,'wb')as f:
for c in f1.chunks():
f.write(c)
# 图片路径:media/a1.jpg
context = {
'fname':'media/'+up_file,
}
# return HttpResponse('文件成功上传至:%s'%fname)
return render(request,'show_image.html',context)
else:
return HttpResponse('上传失败,文件大小不能超过500KB,该文件大小为:%sKB'%fsize)
else:
return HttpResponse("上传失败,只允许上传图片格式文件[jpg,gif,png,jpeg],该文件格式为:%s" % img_format)
else:
return HttpResponse("上传失败,未选择任何文件!")
templates新建uploadPic.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/uploadHandle/" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="pic1">
<br>只允许上传大小不超过500KB图片格式文件[jpg,gif,png,jpeg]
<br>
<input type="submit" value="上传图片">
</form>
</body>
</html>
templates新建show_image.html,用于将上传的图片显示出来:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>将上传的图片显示出来</title>
</head>
<body>
{% load staticfiles %}
上传的图片为:
<br>
<br>
<img src="{% static fname %}" alt="">
</body>
</html>
配置url,应用名为booktest:
from django.urls import path
from booktest import views
urlpatterns = [
path('upladPic/',views.upladPic),
path('uploadHandle/',views.uploadHandle),
]
启动服务:
python manage.py runserver
打开网址:http://127.0.0.1:8000/upladPic/
上传完毕会跳转到这个网址将图片显示出来:http://127.0.0.1:8000/uploadHandle/
如果成功会在项目的:static/media目录下生成上传的文件。