摘要:经典文件上传方式创建URLfromdjango.contribimportadminfromdjango.urlsimportpathfromdjango.conf.urlsimporturlfromapp01importviewsurlpatterns=[path('admin/',admin.site.urls),url("upload.html",views.upload),]创建一个简易上
经典文件上传方式
创建URL
from django.contrib importadmin
from django.urls importpath
from django.conf.urls importurl
from app01 importviews
urlpatterns =[
path('admin/', admin.site.urls),
url("upload.html",views.upload),
]
创建一个简易上传页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="upload.html"method="post"enctype="multipart/form-data">
{% csrf_token %}
<p><input type="text"name="user"></p>
<p><input type="file"name="img"></p>
<p><input type="submit"value="上传"></p>
</form>
</body>
</html>
创建视图函数进行接收前端传入的文件
from django.shortcuts importrender
from django.shortcuts importHttpResponse
from django.shortcuts importredirect
from django importforms
from django.forms importfields
#Create your views here.
classUploadForm(forms.Form):
user=fields.CharField()
img=fields.FileField()
defupload(request):
if request.method=="GET":
return render(request,"upload.html")
else:
obj=UploadForm(request.POST,request.FILES)
ifobj.is_valid():
user=obj.cleaned_data["user"]
img=obj.cleaned_data["img"]
#user=request.POST.get("user")
#img=request.FILES.get("img")
#print(request.POST) #获取以POST方式提交的数据
#print(request.FILES) #获取前端提交的文件
#print(img) #获取文件信息
#print(img.name) #获取文件名称
#print(img.size) #获取文件大小
f=open(img.name,"wb")
for line inimg.chunks():
f.write(line)
f.close()
return HttpResponse("ok")