标签:django 文件上传
html页面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form enctype="multipart/form-data" action="/app01/upload/" method="POST">
{% csrf_token %}
<input type="file" name="upload" />
<br/>
<input type="submit" value="上传"/>
</form>
</body>
</html>URL配置:
urlpatterns = [, url(r‘^upload/$‘, upload), ]
views.py配置:
def upload(request):
if request.method == ‘GET‘:
return render(request,‘upload.html‘)
elif request.method == ‘POST‘:
content =request.FILES.get("upload", None)
if not content:
return HttpResponse("没有上传内容")
position = os.path.join(‘C:\\Users\\huyuan\\Desktop\\test\\upload‘,content.name)
#获取上传文件的文件名,并将其存储到指定位置
storage = open(position,‘wb+‘) #打开存储文件
for chunk in content.chunks(): #分块写入文件
storage.write(chunk)
storage.close() #写入完成后关闭文件
return HttpResponse("上传成功") #返回客户端信息
else:
return HttpResponseRedirect("不支持的请求方法")上传文件的常用方法和属性:
content.read():从文件中读取整个上传的数据,这个方法只适合小文件
content.chunks():按块写入文件,通过for循环可以将大文件按块写入到磁盘中
content.name:获取文件名,包括后缀
content.size:获取文件大小
本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1954705
标签:django 文件上传
原文地址:http://hongchen99.blog.51cto.com/12534281/1954705