htmlfileupload上传图片第一步:这是一个上传图片的按钮<formclass="form-horizontal"method="post"action="{%url'create_article'%}"enctype="multipart/form-data">{%csrf_token%}<divclass="form-group"><labelfor="inputEmail3"class="col-sm-2control-label">图片</label><divclass="col-sm-10"><inputtype="file"name="head_img"></div></div></form>上面这个按钮的将会把你选择本地的图片发送到create_article这个url条目中处理。第二步:create_article这个url条目将交给下面views.py的内容处理defcreate_article(request):ifrequest.method=="GET":returnrender(request,'create_aritcle.html')elifrequest.method=="POST":printrequest.POSTprint'----------'printrequest.FILES##查看上传图片的路径bbs_generater=utils.ArticleGen(request)res=bbs_generater.create()html_ele="""Yourarticle<<ahref="/article/%s/">%s</a>>hasbeencreatedsuccessfully!!!,"""%(res.id,res.title)returnHttpResponse(html_ele)第三步:上面的utils模版内容如下:#!/usr/bin/python#-*-coding:utf-8-*-__author__='gaogd'importosimportmodelsfroms10day12bbsimportsettingsclassArticleGen(object):def__init__(self,request):self.requset=requestdefparse_data(self):form_data={'title':self.requset.POST.get('title'),'content':self.requset.POST.get('content'),'summary':self.requset.POST.get('summary'),'author_id':self.requset.user.userprofile.id,'head_img':'','category_id':1##这里应该是用户选择的才对}returnform_datadefcreate(self):self.data=self.parse_data()bbs_obj=models.Article(**self.data)bbs_obj.save()filename=handle_upload_file(self.requset,self.requset.FILES['head_img'])#获取图片路径并保存到数据库bbs_obj.head_img=filenamebbs_obj.save()returnbbs_objdefupdate(self):passdefhandle_upload_file(request,file_obj):upload_dir='%s/%s'%(settings.BASE_DIR,settings.FileUploadDir)ifnotos.path.isdir(upload_dir):os.mkdir(upload_dir)print'---->',dir(file_obj)withopen('%s/%s'%(upload_dir,file_obj.name),'wb')asdestination:forchunkinfile_obj.chunks():destination.write(chunk)returnfile_obj.name第二步:查看上传图片的路径requset.FILES['head_img']request.FILES##查看上传图片的路径第三步:获取图片路径并保存到数据库。##这个是图片处理的重点defhandle_upload_file(request,file_obj):upload_dir='%s/%s'%(settings.BASE_DIR,settings.FileUploadDir)ifnotos.path.isdir(upload_dir):os.mkdir(upload_dir)print'---->',dir(file_obj)withopen('%s/%s'%(upload_dir,file_obj.name),'wb')asdestination:forchunkinfile_obj.chunks():destination.write(chunk)returnfile_obj.name