Django에서 Ckeditor에 그림을 올리는 실현
2489 단어 django
Python 3.7
Django 2.1
Ckeditor:5.x
1단계:
ckeditor를 다운로드하여 이미지를 찾습니다.js 이 파일, "upload"를 검색하면 이 부분을 찾을 수 있습니다: "Upload",hidden:!0.실제로 업로드 기능이 숨겨졌어요. 위에 있는 거!0을 0으로 바꾸고 편집기를 열면 업로드 기능을 찾을 수 있습니다.
2단계:
ckeditor/config에서 가능합니다.js에서 설정합니다.가입:config.filebrowserUploadUrl="/uploadimg/";#이것은 post 그림의 URL입니다
3단계:
수신한views 쓰기 (그림을 재단하는 등의 작업을 하려면 PIL을 사용할 수 있습니다)
def sceneImgUpload(request):
if request.method == 'POST':
callback = request.GET.get('CKEditorFuncNum')
try:
path = "static/upload/" + time.strftime("%Y%m%d%H%M%S", time.localtime())
f = request.FILES["upload"]
file_name = path + "_" + f.name
des_origin_f = open(file_name, "wb+")
for chunk in f.chunks():
des_origin_f.write(chunk)
des_origin_f.close()
except Exception as e:
print(e)
res = "window.parent.CKEDITOR.tools.callFunction(" + callback + ",'/" + file_name + "', ''); "
return HttpResponse(res)
else:
raise Http404()
4단계: csrf를 사용하면 오류가 발생합니다.ckeditor는 csrf를 자체로 가지고 있지 않기 때문에 스스로 추가해야 합니다.
ckeditor를 엽니다.js 소스 파일, 함수 삽입:
function getCookie(name){
var strCookie=document.cookie;
var arrCookie=strCookie.split("; ");
for(var i=0;i
다음 검색: multipart/form-data, 이 form에 삽입된 form을 찾을 수 있습니다.
csrf 검증을 완료합니다.
계속:
ckeditor는 자체적으로 비동기 제출을 가지고 있기 때문에, 자신이 설정해서 제출할 경우 업로드 그림 선택 상자:
기본적으로 비동기 제출이 아니기 때문에, 비동기 제출이 필요하면 두 가지 참고 방법이 있습니다: 1: 플러그인 ajaxupload를 사용합니다.js
2: iframe 사용
-------------------------저자: 여인숙 출처: CSDN 원문:https://blog.csdn.net/ypq5566/article/details/37594371판권 성명: 본고는 블로거 여인숙의 을 바탕으로 변경하여 더욱 높은 버전의ckeditor와 어울린다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.