В качестве редактора WYSIWYG я использую codeigniter, загрузчик Twitter и Summernote. У меня проблема с загрузкой изображения. Всякий раз, когда вы загружаете изображение с помощью Summernote, оно сериализует изображение в строку base64. Эта строка base64 настолько длинна, что не помещается в текстовый тип данных в phpmyadmin. Что я хочу сделать, это загрузить изображение с помощью функции загрузки PHP и сохранить его URL в базе данных вместо строки base64. Как бы я это сделал?
В отношении этот пост, вот код,
$(function() {
$('.summernote').summernote({
height: 100,
onImageUpload: function(files, editor, welEditable) {
sendFile(files[0], editor, welEditable);
}
});
function sendFile(file, editor, welEditable) {
data = new FormData();
data.append("files", file);
upload_url = "<?php echo base_url(); ?>" + "dashboard/uploader/";
$.ajax({
data: data,
type: "POST",
url: upload_url,
cache: false,
contentType: false,
processData: false,
success: function(url) {
editor.insertImage(welEditable, url);
}
});
}
});
метод uploader в классе dashboard находится там, где находится мой код загрузки php. Вот код PHP,
public function uploader()
{
$this->load->helper('file');
if ($_FILES['files']['name']) {
if (!$_FILES['files']['error']) {
$name = md5(rand(100, 200));
$ext = explode('.', $_FILES['files']['name']);
$filename = $name . '.' . $ext[1];
$destination = base_url().'uploads/' . $filename;
$location = $_FILES["files"]["tmp_name"];
move_uploaded_file($location, $destination);
echo base_url() . $filename;
}
else
{
echo $message = 'Ooops! Your upload triggered the following error: '.$_FILES['files']['error'];
}
}
}
Всякий раз, когда я загружаю изображение, оно не отображается в редакторе wysiwyg. Куда я иду не так?
теперь это выглядит так:
$(function() {
$('.summernote').summernote({
height: 100,
onImageUpload: function(files) {
sendFile(files[0]);
}
});
function sendFile(file) {
data = new FormData();
data.append("files", file);
upload_url = "<?php echo base_url(); ?>" + "dashboard/uploader/";
$.ajax({
data: data,
type: "POST",
url: upload_url,
cache: false,
contentType: false,
processData: false,
success: function(url) {
$(this).summernote("insertImage", url);
}
});
}
});
Какую версию SummerNote вы используете? Последние (0.6.16) звонки с летних заметок на заказ OnImageUpload
функция только с одним аргументом — files
без editor
а также welEditable
,
Увидеть :
https://github.com/summernote/summernote/blob/v0.6.16/src/js/EventHandler.js#L117
Пожалуйста, обратитесь код JavaScript django-summernote
.
Summernote изменил свое поведение при работе с изображениями после 0.6.5. Увидеть изменения.
Других решений пока нет …