[英]Summernote 0.8.12 Image Upload And Delete
为此,您需要使用对 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 我添加了你提供的删除代码,但是图片仍然没有被删除
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.