繁体   English   中英

Summernote 0.8.12 图片上传和删除

[英]Summernote 0.8.12 Image Upload And Delete

在 Summernote 0.8.12 版本中,我找不到上传和删除图片的代码。 你能帮助我吗?

在此处输入图像描述

在此处输入图像描述

为此,您需要使用对 function 的回调来处理您的上传 - 在我的情况下,我的 Summernote 如下(相关性非常简化):

    $('.editor').summernote({
        toolbar: [
            ['insert', ['link', 'picture']]
        ],
        callbacks: {
            onImageUpload: function(image) {
                uploadSNImage(image[0]);
            },
            onMediaDelete : function(target) {
                deleteSNImage(target[0].src);
            }
        }
    });

回调表示,当上传图像时,它会调用名为 uploadSNImage 的 function。

这个 function 看起来像:

    function uploadSNImage(image, editor) {
        var data = new FormData();
        data.append("image", image);
        $.ajax({
            url: 'YOUR UPLOAD SCRIPT',
            cache: false,
            contentType: false,
            processData: false,
            data: data,
            type: "post",
            success: function(url) {
                var image = $('<img>').attr('src', url);
                editor.summernote("insertNode", image[0]);
            },
            error: function(data) {
            }
        });
    }

您将需要在您的服务器上将 url 更改为 url,这将获取图像并对其进行验证,将其存储在某处等等,但这实际上将允许将图像传递给该脚本。

该脚本中的 output 应该是 url 到您上传的文件,以便您可以在 function 的成功部分中使用它。

要以类似的方式删除作品,除了这次您在回调中使用 onMediaDelete - 这再次调用 function 和 ajax 调用脚本以删除图像(已编辑以包括上面的内容)。

您的删除 function 然后看起来像:

function deleteSNImage(src) {
    $.ajax({
        data: {src : src},
        type: "POST",
        url: "YOUR DELETE SCRIPT", 
        cache: false,
        success: function(data) {
            alert(data);
        }
    });
}

@bhttoan 我添加了你提供的删除代码,但是图片还是没有删除JS

$('#summernote').summernote({
callbacks: {
    onImageUpload: function(files) {
        for(let i=0; i < files.length; i++) {
            $.upload(files[i]);
        }
    }
},
height: 500,
});

$.upload = function (file) {
    let out = new FormData();
    out.append('file', file, file.name);

    $.ajax({
        method: 'POST',
        url: 'upload.php',
        contentType: false,
        cache: false,
        processData: false,
        data: out,
        success: function (img) {
            $('#summernote').summernote('insertImage', img);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.error(textStatus + " " + errorThrown);
        }
    });
};

上传.PHP

<?php if ($_FILES['file']['name']) {if (!$_FILES['file']['error']){
$name = md5(rand(100, 200));
$ext = explode('.', $_FILES['file']['name']);
$filename = $name . '.' . $ext[1];
$destination = '..//uploads/cached/' . $filename; //change this directory
$location = $_FILES["file"]["tmp_name"];
move_uploaded_file($location, $destination);
echo '..//uploads/cached/' . $filename;
}else{
echo  $message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['file']['error'];
}
} ?>

编辑

@bhttoan 我添加了你提供的删除代码,但是图片仍然没有被删除

代码 IMG

删除警报 IMG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM