Uploading images use Django Ckeditor --getting server error(500)

pytheworld

Uploading images use Django Ckeditor --getting server error(500)

I have been struggling for the problem for two days. Unfortunately, i still have no idea to solve it due to my poor knowledge. So i have to come here asking for help. Very appreciate !

enter image description here

I want to write a website as my blog and use Django to implement it. To develop this website, i have to use rich text editor, so i use CKeditor on admin panel. Here is the link of Ckeditor source code on github. https://github.com/django-ckeditor/django-ckeditor

To upload images using ckeditor widget , i edited this file../static/ckeditor/ckeditor/plugins/image/di alogs/image.js so it can display the images upload button.

id:"Upload",hidden:!0

I also added upload url in config.js. After that, i set routing in the urls.py and added a view function in views.py. Everything was ok on my computer. however, after i deployed it to website server i got server error(500) during uploading a image by ckeditor . Ckeditor widget can not return the urls but i can find the images on server which i uploaded by ckeditor.

$:~/sites/www/source$ ls ../media/images/
20161219045646_7.jpeg           20161219053949_0094.jpg      
$:~/sites/www/source$

config.js (the locationstatic/ckeditor/ckeditor/)

/**
 * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben.   All rights reserved.
 * For licensing, see LICENSE.md or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
        config.filebrowserImageUploadUrl="/articleuploadimg/";
};

urls.py

from django.conf.urls import url, include
from django.contrib import admin
from article import views as article_views
urlpatterns = [
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
    url(r'^admin/', admin.site.urls),
    url(r'^articleuploadimg/', article_views.article_upload_image),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

The file tree

|___sites
        |___www.mysite.com
                |___database
                |    |___db.sqlite3
                |   
                |___source
                |    |___manage.py
                |    |___article
                |    |      |___views.py
                |    |      |___...
                |    |___...
                |   
                |___static
                |    |___ckeditor
                |    |___css
                |    |___js
                |     
                |___virtualenv
                |___media
                     |___images

views.py

from django.shortcuts import render
from article.models import Article
from django.views.decorators.csrf import csrf_protect
import time

@csrf_protect
def article_upload_image(request):
    if request.method == 'POST':
        callback = request.GET.get('CKEditorFuncNum')
        try:
            path = "../../media/images/"+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:
                des_origin_f.write(chunk)
            des_origin_f.close()
        except Exception as e:
            print (e)
        res = r"<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+file_name+"','');</script>"
        return HttpResponse(res)
    else:
        raise Http404()

settings.py

# Application definition    
INSTALLED_APPS = [
    'ckeditor',
    'ckeditor_uploader',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'article',
]
...
...

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.abspath(os.path.join(BASE_DIR, '../static'))

# Media files (upload path)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.abspath(os.path.join(BASE_DIR, '../media/'))
CKEDITOR_UPLOAD_PATH = ""
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
pytheworld

I added something in /etc/nginx/sites-available/www.mysite.com

location /media {
    alias /home/XXX/sites/www.mysite.com/media;
}

as well as changed the path

path = "../media/images/"

Finally, it works !

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Django REST: Uploading and serializing multiple images

Error 500 when uploading Laravel project to server

creating directory and uploading images to remote web server

How to remove images uploaded with django-ckeditor?

Ckeditor 5 file uploading adapter error

Uploading multiple images on server reaches one less

Images don't appear - django ckeditor

Receive Server Error 500 on Heroku with Django for specific pages with images (static served by WhiteNoise)

Long title crashes django site error500

Django ckeditor image upload - Error 403 when trying to upload images

Absolute paths on images uploaded by django-ckeditor

Uploading multiple images to mysql database on Apache server

Uploading images to server from Android device

Uploading images to server but they are not showing up

Django Ckeditor image browser not finding images

getting 500 internal server error?

Trying to use JSON but getting '500 Internal Server Error'

Uploading multiple images with Django

Getting Internal Server error while uploading Video. But uploading image is working fine. What can be issue?

Django-Filebrowser and uploading images

PHP: Images file is not uploading on the server?

Android: uploading user images to server (Volley/Blob)

uploading images with tinymce to server

DRF: Uploading images in Django

Django multiple images not uploading

Retrofit Android + Spring Boot Server images uploading return Bad Request error

I seem to have issues uploading images. i keep getting "Cannot use object of type App\Http\Controllers\PostsController as array. "

Uploading images in django

Uploading images with HTMX in django