KindEditor是一款用Javascript編寫的開源線上HTML編輯器,主要使用者是讓使用者在網站上獲得可見即可得的編輯效果,開發人員可以用KindEditor 把傳統的多行文字輸入框(textarea)替換為視覺化的富文本輸入框
到官網下載KindEditor 最新版本,解壓縮後將所有檔案拷貝到專案的static文件夾下。注意,可以根據需要刪除以下目錄:
asp - ASP程式
asp.net - ASP.NET程式
php - PHP程式
jsp - JSP程式
examples - 示範檔案
HTML範本中需要顯示富文本編輯器的位置新增<textarea>
標籤:
<label for="article_body">文章内容</label><textarea id="article_body" name="article_body"></textarea>
<script src="{% static 'kindeditor-4.1.10/kindeditor-all-min.js' %}"></script><script> var options = { resizeType: 0, uploadJson: "/upload/", //指定图片上传的url路径,server端写一个视图来处理上传的图片 extraFileUploadParams: { "csrfmiddlewaretoken": "{{ csrf_token }}" } }; KindEditor.create("#article_body", options); //为指定元素创建富文本编辑器</script>
uploadJson參數指定上傳的url路徑
extraFileUploadParams參數用於提交csrf驗證
標籤的
src屬性,顯示預覽圖片
from django.conf.urls import urlfrom app import views urlpatterns = [ url(r'^upload/$', views.upload_file, name='upload_file'), url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}), # 配置media路由]
def upload_file(request): # 拿到文件,保存在指定路径 print(request.FILES) # {'imgFile': [<InMemoryUploadedFile: QQ图片20170523192846.jpg (image/jpeg)>]} imgFile = request.FILES.get('imgFile') # 拿到文件对象,imgFile.name, 拿到文件名 with open('app01/media/upload/img/'+imgFile.name,'wb')as f: # with open 无法创建文件夹,需要自己创建 for chunk in imgFile.chunks(): f.write(chunk) # 返回json响应 response = { 'error': 0, 'url': '/media/upload/img/'+imgFile.name # 客户端拿到路径,才能预览图片; media在setting中配置了别名,这里只写media,客户端就可以找到路径,前面不需要加/app } return HttpResponse(json.dumps(response))
request.FILES中拿到圖片物件
#imgFile. name拿到檔案名稱
error和
url的json回應
以上是kindeditor圖片上傳功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!