form表单上传文件
注意要在form表单中加上content="width=device-width, initial-scale=1"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<title>Title</title>
</head>
<body>
<form action="/upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}
头像:<input type="file" name="head-pic">
用户名:<input type="text" name="username">
<input type="submit">
</form>
</body>
</html>
views代码
def upload(request):
if request.method == 'GET':
return render(request,'upload.html')
else:
print(request.POST)
# print(request.FILES) <MultiValueDict: {'head-pic': [<InMemoryUploadedFile: 777.jpg (image/jpeg)>]}>
file_obj = request.FILES.get('head-pic')
file_name = file_obj.name
import os
# 文件保存路径
path = os.path.join(settings.BASE_DIR,'statics','img',file_name)
with open(path,'wb') as f:
for i in file_obj:
f.write(i)
return HttpResponse('ok')
urls代码
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 上传文件
url(r'upload/',views.upload,name='load'),
]