javascript - 如何在 Trumbowyg 中添加 cloudinary 参数来上传插件

标签 javascript jquery cloudinary dropzone trumbowyg

我在我的项目中使用 trumbowyg 编辑器。从文档中我知道可以使用下面的代码来设置编辑器的图片上传内容。

$('#editor')
.trumbowyg({
    btns: ['upload'],
    plugins: {
        // Add imagur parameters to upload plugin for demo purposes
        upload: {
            serverPath: 'https://api.imgur.com/3/image',
            fileFieldName: 'image',
            headers: {
                'Authorization': 'Client-ID xxxxxxxxxxxx'
            },
            urlPropertyName: 'data.link'
        }
    }
});

这适用于 imgur,但我想使用 cloudinary 服务器而不是 imgur

有人可以指导我在使用 cloudinary 时如何使用 plugins:{} 吗?

我还使用 dropzone.jscloudinary 来上传图像,这也工作正常。 这是 dropzone 函数代码:

Dropzone.autoDiscover = true;
var myDropzone = new Dropzone(document.getElementById('image-upload'), {
  clickable: "#image-upload #btn-add",
  uploadMultiple: false,
  autoProcessQueue: true,
  acceptedFiles:'.jpg,.png,.jpeg,.gif',
  parallelUploads: 10,
  maxFilesize: 9,
  maxFiles: 10,
  url: 'https://api.cloudinary.com/v1_1/demo_project/image/upload',
  addedfile: function(file) {
    // console.log(file);
    new Noty({
      type: 'success',
      text: "Uploading...",
      timeout: false
    }).show();
    // myDropzone.processQueue();
  },
  success: function(file, response){
    new Noty({
      type: 'success',
      text: "Uploaded!",
      killer: true
    }).show();
    newImageArray.push({
      public_id: response.public_id,
      url: response.url,
      secure_url: response.secure_url
    });
    newImageArrayJSON = JSON.stringify(newImageArray);
    $imageStorage.val(newImageArrayJSON)
    $("#image-upload .image").html('<img src="' + response.secure_url + '">')
    $("#image-upload #btn-add").hide();
    $("#image-upload #btn-remove").show();
  }
});
myDropzone.on('sending', function (file, xhr, formData) {
  formData.append('api_key', 112233445566778);
  formData.append('timestamp', Date.now() / 1000 | 0);
  formData.append('upload_preset', 'mypreset');
});

提前致谢!

最佳答案

我建议从我测试并为我工作的以下基本实现开始:

$('#editor').trumbowyg({
    btns: ['upload'],
    plugins: {
        upload: {
            serverPath: 'https://api.cloudinary.com/v1_1/demo_project/image/upload',
            fileFieldName: 'file',
            urlPropertyName: 'data.secure_url',
            data: [
                {name: 'api_key', value: '112233445566778'},
                {name: 'timestamp', value: Date.now() / 1000 | 0},
                {name: 'upload_preset', value: 'mypreset'}
            ],
            success: function (data) {
                console.log(data);
            },
            error: function (error) {
                console.log(error.responseText);
            }
        }
    }
});

您可以登录您的 Cloudinary 帐户并修改您的上传预设,以根据不同的条件限制上传,就像使用 dropzone.js 一样,例如仅允许特定格式的上传等等

关于javascript - 如何在 Trumbowyg 中添加 cloudinary 参数来上传插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53922337/

相关文章:

javascript - 为什么知道.call()和.apply()之间的区别如此重要?

javascript - jQuery append() 在开头添加

node.js - 我们可以在 cloudinary 上更新上传的图片吗?

javascript string.replace $1 如果它是某个值?

javascript - gmaps.js 返回 getRoutes 的旧值

javascript - CSS:侧边栏 100% 显示高度,不重叠导航栏。 (个人导航高度)

javascript - 如何在数据表中显示 Bootstrap 选择组合框?

javascript - 如何在 jQuery 中取消绑定(bind) "hover"?

node.js - 使用 cloudinary npm 模块上传图像

node.js - keystone.js API 和 cloudinary 图片上传