Django html file upload 이미지 업로드

3228 단어 htmlDjangofile
html file upload     


       :            
 {% csrf_token %}
  
그림
    
        
    
  
위의 이 단추는 로컬 그림을 선택하여create 에 보냅니다.article 이 URL 항목에서 처리합니다.
2단계:createarticle 이 URL 항목은 아래views에 전달됩니다.py의 내용 처리
   def create_article(request):
    if request.method == "GET" :
        return  render(request,'create_aritcle.html')
    elif request.method == "POST" :
        print request.POST
        print '----------'
        print request.FILES ## 이미지 업로드 경로 보기
        bbs_generater = utils.ArticleGen(request)
        res = bbs_generater.create()
        html_ele ="""
        Your article <  %s > has been created successfully !!!,
        """ %(res.id, res.title)
        return HttpResponse(html_ele)
3단계: 위의 utils 템플릿은 다음과 같습니다.
#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'gaogd'
import  os
import  models
from s10day12bbs import settings
class ArticleGen(object):
    def __init__(self,request):
        self.requset = request
    def parse_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 ## 여기는 사용자가 선택해야 합니다.
        }
        return form_data
    def create(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 = filename
        bbs_obj.save()
        return bbs_obj
    def update(self):
        pass
def handle_upload_file(request, file_obj):
    upload_dir = '%s/%s' % (settings.BASE_DIR, settings.FileUploadDir)
    if not os.path.isdir(upload_dir):
        os.mkdir(upload_dir)
    print  '---->', dir(file_obj)
    with open('%s/%s' % (upload_dir, file_obj.name), 'wb') as destination:
        for chunk in file_obj.chunks():
            destination.write(chunk)
    return file_obj.name
2단계: 이미지를 업로드하는 경로 보기
       requset.FILES['head_img']
       request.FILES ## 이미지 업로드 경로 보기
세 번째 단계: 그림 경로를 가져와 데이터베이스에 저장합니다.
### 이게 포토샵의 포인트입니다.
    def handle_upload_file(request, file_obj):
        upload_dir = '%s/%s' % (settings.BASE_DIR, settings.FileUploadDir)
        if not os.path.isdir(upload_dir):
            os.mkdir(upload_dir)
        print  '---->', dir(file_obj)
        with open('%s/%s' % (upload_dir, file_obj.name), 'wb') as destination:
            for chunk in file_obj.chunks():
                destination.write(chunk)
        return file_obj.name

좋은 웹페이지 즐겨찾기