02 ноября 2012

Redactor-js WYSIWYG редактор и python

Redactor-js - это простой вайсвиг с возможностью загрузки изображений.
demo: http://imperavi.com/redactor/
github: https://github.com/dybskiy/redactor-js
Как сочленить это с php можно прочитать из документации http://imperavi.com/redactor/docs/images/. Там же есть ссылка на пример с Django от Patrick Altman. Я же постараюсь описать как загружать картинки при помощи pyramid фреймворка, думаю переписать на что то другое не составит труда.
js функция redactor'а у меня выглядит вот так:




 
вьюха для загрузки изображений:
@view_config(route_name='upload_image', renderer='json')
def upload_image(request):
    # путь к директории куда загружать картинку
    path = request.registry.settings.get('redactor_images')

    filename = str(time.time()) + request.POST['file'].filename
    input_file = request.POST['file'].file

    # Using the filename like this without cleaning it is very
    # insecure so please keep that in mind when writing your own
    # file handling.
    file_path = os.path.join(path, filename)
    output_file = open(file_path, 'wb')

    # Finally write the data to the output file
    input_file.seek(0)
    while 1:
        data = input_file.read(2 << 16)
        if not data:
            break
        output_file.write(data)
    output_file.close()

    return {"filelink": "/static/uploaded/images/" + filename}
И вьюха для выбора изображений из уже загруженных:
@view_config(route_name='GetJson'), renderer='json')
def imageGetJson(request):
    path = request.registry.settings.get('redactor_images')
    types = ('*.jpg', '*.jpeg', '*.gif')  # the tuple of file types

    files_grabbed = []
    for files in types:
        files_grabbed.extend(glob.glob(path + "/" + files))
    images = []
    for file in files_grabbed:
        file = file.replace(path, "")
        images.append({"thumb": "/static/uploaded/images/" + file,
             "image": "/static/uploaded/images/" + file,
             "title": file, "folder": "images"})

    return images
Пользуйтесь, хороший редактор.

Комментариев нет:

Отправить комментарий