【问题标题】:Summernote 0.8.12 Image Upload And DeleteSummernote 0.8.12 图片上传和删除
【发布时间】:2020-08-01 08:40:54
【问题描述】:

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

【问题讨论】:

    标签: javascript php summernote


    【解决方案1】:

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

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

    回调表示,当上传图片时,它会调用名为 uploadSNImage 的函数。

    这个函数看起来像:

        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,它将获取图像并对其进行验证,将其存储在某处等等,但这实际上允许将图像传递给该脚本。

    该脚本的输出应该是您上传的文件的 url,以便您可以在函数的成功部分使用它。

    删除的工作方式与此类似,但这次您在回调中使用 onMediaDelete - 这再次调用了一个函数,该函数通过对脚本的 ajax 调用来删除图像(经过编辑以包含上述内容)。

    你的删除函数看起来像这样:

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

    【讨论】:

      【解决方案2】:

      @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);
              }
          });
      };
      

      UPLOAD.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 我添加了你提供的删除代码,但图片仍然没有被删除

      Code IMG

      Delete Alert IMG

      【讨论】:

      • 你的删除文件在哪里?
      猜你喜欢
      • 2014-03-04
      • 2016-06-13
      • 2015-01-03
      • 2016-01-02
      • 2017-07-16
      • 2014-07-27
      • 2018-07-13
      • 2015-07-27
      • 2015-10-19
      相关资源
      最近更新 更多