无法使用 Froala 编辑器删除服务器的图像


Can't delete image of server using Froala editor

我仔细遵循了 https://editor.froala.com/docs 上的安装指南。一切都运行良好,除了删除我的服务器的图像。

我在编辑器中上传了一张图像 ->图像保存在本地服务器的上传文件夹中。但是当我选择在编辑器中删除该图像时 ->它已从编辑器中删除,但它仍在上传文件夹中,尽管我尝试了此网站上的指南。我尝试使用火虫,但它没有告诉任何错误。

这是向remove_image.php文件发送请求的JS代码:

<script>
$(function() {
$('#froala')
.editable({
// Set the image upload URL.
inlineMode: false,
imageMove: true,
height: 300,
imageUploadURL: 'upload.php',
imageUploadParam: "file",
imageDeleteURL: "remove_image.php"
})
.on('editable.afterRemoveImage', function (e, editor, $img) {
// Set the image source to the image delete params.
editor.options.imageDeleteParams = {src: $img.attr('src')};
// Make the delete request.
editor.deleteImage($img);
});
});
</script>

这是处理来自JS的已删除请求的remove_image.php(从他们的指南中复制)。这实际上会从上传文件夹中删除图像。但事实并非如此。图像仍然存在。

<?php
// Get src.
$src = $_POST["src"];
// Check if file exists.
if (file_exists(getcwd() . $src)) {
  // Delete file.
  unlink(getcwd() . $src);
}
?>

啊,我在火虫中找到了以下帖子详细信息:

Parameters
src uploads/6bb7897cfcf2116c4dd04b97031652376bdaf144.png
Source
src=uploads%2F6bb7897cfcf2116c4dd04b97031652376bdaf144.png

图像文件名前面有额外的 %2F。这似乎是错误,但我不知道如何解决这个问题。请帮忙!

$src = urldecode($_POST["src"]); 替换 PHP 的第一行应该可以解决问题。

基本上你必须用/替换%2F.