使用此代码正确完成上传
<script>
var data = { "timestamp": "1403951115",
"callback": "http://localhost:8080/SimpleServlet/cloudinary_cors.html",
"signature": "3b1a708393db7cd0ef1df2be0c602ea99d9c64c3",
"api_key": "742866863611915" };
$('#uploadinput').attr('data-form-data', JSON.stringify(data));
</script>
如果我为'data-form-data'属性设置了dinamically值,则上传失败并显示错误: “上传预设必须在使用未签名上传时指定上传预设”
请注意,我使用对cloudinary服务器的ajax异步调用来设置dinamically数据值以获取凭据。
答案 0 :(得分:1)
为了避免这个问题并从头开始,我使用了以下方法:
<script src="//widget.cloudinary.com/global/all.js" type="text/javascript"></script>
<script>
cloudinary.setCloudName('YOUR_CLOUD_NAME');
cloudinary.openUploadWidget({upload_preset: 'your_unsigned_preset_name'}, function(error, result) {//...
})
</script>
答案 1 :(得分:0)
通过调用cloudinary-fileupload
修改$(...).attr('data-form-data', json)
字段的参数不起作用,因为初始化后不会重新读取此属性的值,因此此调用无效。
可能的后果是401 Unauthorized(例如,由于未知的API密钥)错误以及正在使用的原始参数。
更新上传参数的正确方法是调用$(...).fileupload({formData: data})
,其中数据是参数哈希(不是JSON序列化)。