我正在从Dropzone的小部件转移到Cloudinary的小部件,遇到了很多麻烦。
First off Dropzone目前正在顺利上传到cloudinary。我正在转移到他们的专有小部件,原因有很多,这只会分散这篇文章的注意力。
我面临的问题是";简单的";乍一看。图像正在正确上传到Cloudinary。正是在随后的表格帖子中,我遇到了问题。
Dropzone自动创建必要的隐藏输入和值。。。多云,你必须自己滚动。所以我已经做到了,它不仅不起作用,而且输入值与dropzone为同一图像生成的值非常不同。我在dropzone.js中找不到可以解释如何创建输入的逻辑。
例如,以下是dropzone为一个图像渲染的内容:
<input type="hidden" name="entity[job_entries_attributes][0][images][]" value="eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBNkpLQWc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--7d13c16894d2a146f1ac85e12ddea03d9c14c26e">
当我手动滚动时,我可以访问从直接上传到Cloudinary返回的对象-public_id、asset_id等。但它们都与上面的值不相似。我认为后期和后续的图像渲染会因此而失败。
有人有这方面的经验吗???快把我逼疯了。。。
Upload Widget是一个用于将图像上传到Cloudinary Media Library帐户的交互式UI,其使用可以根据用例要求进行扩展。尽管该小部件没有Dropzone的许多功能,但您可以使用不同的事件来包括使用javascript或HTML的其他自定义进程(请参阅此处和此处的示例演示(。
<div id="widgetdiv"></div>
<script type="text/javascript">
cloudinary.openUploadWidget({
cloudName: 'cloudname',
inlineContainer: '#widgetdiv',
uploadPreset: 'uploadPreset',
showPoweredBy: false,
sources: ['local','instagram']},
(error, result) => {
if (!error && result && result.event === "success") {
console.log('Done! Here is the image info: ', result.info);
console.log('Custom implementations here...');
var filename = result.info.secure_url.split('/').pop().split('#')[0].split('?')[0];
var filesize = result.info.bytes;
// Populate form, card container, post to another endpoint, etc
}
}
);
</script>