当我动态设置属性&data-form-data'时,云直接浏览器上传失败。上传输入

时间:2014-06-30 09:30:04

标签: jquery upload cloudinary

使用此代码正确完成上传

<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数据值以获取凭据。

2 个答案:

答案 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序列化)。