Я использую codeigniter, twitter bootstrap и summernote как мой редактор WYSIWYG. Im сталкивается с некоторыми проблемами с загрузкой изображения. Всякий раз, когда вы загружаете изображение с помощью 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 в классе панели – это где находится мой код загрузки 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); } }); } });