javascript - Cloudinary - 直接调用 API 上传,丢失文件

标签 javascript base64 cloudinary

嗨,我正在尝试使用 React JS 中的 Cloudinary,因此我使用从浏览器直接调用 API。我有服务器返回我 api_key 等...

我正在使用 readAsDataURL() 将我的文件更改为 base64

    let file = e.target.files[0];
    let self = this;

    let typeString = this.tellType(file);

    let reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(){
      self.sendMedia(typeString, this.result)
    }

然后我从客户端nodejs服务器获取api_key、时间戳等,我需要发送图像,并且需要将其发送到cloudinary。

    let request = new XMLHttpRequest();
    let params = {
      api_key: result.upload_info.api_key,
      timestamp: result.upload_info.timestamp,
      signature: result.upload_info.signature,
      public_id: result.upload_info.public_id,
      file: file
    };
    console.log('params',params);

    request.open('POST', `https://api.cloudinary.com/v1_1/${cloud_name}/image/upload`, true);

    request.onreadystatechange = function() {
      console.log('its back', request)
    };

    request.send(params);

然后我收到 403(错误请求)

responseText: "{"error":{"message":"Missing required parameter - file"}}"

我第一次以为我的文件格式错误,但是cloudniary允许使用base64。 谢谢。

最佳答案

我也遇到了同样的问题。您必须以 JSON 形式发送参数。

关于javascript - Cloudinary - 直接调用 API 上传,丢失文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204161/

相关文章:

javascript - 查找数组中子级的父级

javascript - 跟踪窗口调整大小 AngularJS 上的元素宽度

javascript - 如何剥离数据 :image part from a base64 string of any image type in Javascript

javascript - HTML 图像属性返回未定义

javascript - 将传单插件添加到 React-Leaflet

javascript - AngularJs 作用域 - 如何正确从 DOM 获取作用域?

node.js - 图像未保存在 Palm 设备上

php - 在浏览器中将base64字符串下载为png

ruby-on-rails-3 - 带有Rails CRUD的最佳音频上传

javascript - 尝试将 cloudinary 与 requirejs 一起使用