我希望能够使用DropZone上传到Cloudinary,而无需使用upload_preset . 有一个StackOverflow示例解释了如何使用上传预设here,该答案中使用的方法是将Cloudinary必需参数添加到'sending'事件中可用的FormData对象,这在我的用例中不起作用(使用签名上传) .
要在不使用upload_preset的情况下上传,我需要在发送事件期间进行服务器API调用 . 这是必需的,因为上传签名是使用Cloudinary支持图像上传的大多数参数以及时间戳生成的 . 因此,如果我想根据删除的实际文件设置任何Cloudinary上传选项,我需要在Dropzone事件处理工作流程中的某处进行此API调用 .
理论上我可以在我注册的函数中使用同步XMLHttpRequest来监听“发送”事件 . 这似乎不是最好的方法 .
Cloudinary Ajax上传小部件有一个uploadSignature参数,该参数接受带有回调的函数参数(记录为here),以便可以通过异步调用完成所需的服务器API调用(假设我正确理解了示例代码) . 我在文档中遗漏了Dropzone的等效功能吗?
其他任何建议的方法?
1 回答
首先,您应该通过设置
autoProcessQueue: false
来初始化Dropzone,使其无法自动启动上传 . 然后使用addedfile
事件发送Ajax调用以在服务器上生成签名 . 来自Ajax的回调应该将签名和时间戳注入上传参数(例如myDropzone.options.params[signature]=signature
等),然后通过调用myDropzone.processQueue();
来激活上传