Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

1. 이미지 업로드(동영상, 파일 업로드도 동일)

0) 에디터 설정

  • 사이냅에디터 초기화 시 아래와 같은 설정값을 추가해줘야 합니다.
// 사이냅에디터 설정 객체
var SynapEditorConfig = {
	...
	'editor.upload.image.param': {
		'csrfmiddlewaretoken': '{{ csrf_token }}'
	}
	...
}


1) 업로드 경로 설정

# 프로젝트 urls.py
urlpatterns = [
	...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

2) url과 view 연동

# 앱 urls.py
from django.urls import path
from . import views

urlpatterns = [
	...
    path('uploadFile/', views.upload_file, name='upload_file'),
	...
]

3) view 생성

  • 업로드 후 JSON 객체에 'uploadPath' 키에 이미자 URL을 담아 응답해줘야 합니다.
# 앱 views.py
from django.http import JsonResponse
from .forms import UploadFileForm

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        
        if form.is_valid():
            uploaded_file = form.save()
            data = {'uploadPath': uploaded_file.file.url}
    return JsonResponse(data)

4) form 생성

# 앱 forms.py
from .models import UploadFile
from django import forms

class UploadFileForm(forms.ModelForm):
    class Meta:
        model = UploadFile
        fields = ('file', )

5) model 생성

# 앱 models.py
import uuid
from django.db import models

# 저장할 파일 이름을 반환합니다.
def get_file_name(instance, filename):
    ext = filename.split('.')[-1]
    return "%s.%s" % (uuid.uuid4(), ext)

class UploadFile(models.Model):
    file = models.FileField(upload_to=get_file_name)
  • No labels