我使用代码点火器、twitter引导程序和summernote作为我的WYSIWYG编辑器。我面临一些问题的图像上传。每当使用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);
}
});
}
});发布于 2015-10-08 06:43:01
您使用的是哪一种版本的夏季便笺?最新的(0.6.16) summernote调用只有一个参数的自定义OnImageUpload函数-- files,没有editor和welEditable。
请参阅:https://github.com/summernote/summernote/blob/v0.6.16/src/js/EventHandler.js#L117
Summernote在0.6.5之后改变了处理图像的行为。见变化。
https://stackoverflow.com/questions/32947705
复制相似问题