簡體   English   中英

科爾多瓦圖像上傳文件傳輸錯誤

[英]cordova image upload with filetransfer error

我正在嘗試使用cordova將圖像上傳到imgur。 以下是我正在使用的代碼

var fileTransfer = {
  startUpload: function(fileUrl) {

    var uploadServer = 'https://api.imgur.com/3/image.json';
    var apiKey = '<key id>';

    /* global FileUploadOptions */
    var options = new FileUploadOptions();
    options.headers = {
      'Authorization': apiKey
    };
    options.params = {};
    ft = new FileTransfer();
    ft.upload(fileUrl, encodeURI(uploadServer), fileTransfer.uploadSuccess, fileTransfer.uploadFail, options);

  },

  uploadSuccess: function(r) {
    console.log(r);

  },

  uploadFail: function(error) {
    console.log(error);
  }
}

錯誤消息是:

{
  body: "{data :{ error : No image data was sent to the upload api ,request :\ / 3\ / image.json ,method :POST }, success :false, status :400}"
  code: 1
  exception: "https://api.imgur.com/3/image.json"
  http_status: 400
  source: "file:///storage/emulated/0/Android/data/com.hiapp.hiapp/cache/1461877896871.jpg"
  target: "https://api.imgur.com/3/image.json"
}

但是圖片出現在源頭。

問題在於文件密鑰需要設置為“圖像”。 工作代碼

var ft;

var fileTransfer = {
  startUpload: function(fileUrl) {
    var uploadServer = 'https://api.imgur.com/3/image/';
    var options = new FileUploadOptions();
    options.fileKey = 'image'; //This is the important point
    options.fileName = fileUrl.substr(fileUrl.lastIndexOf('/') + 1);
    options.mimeType = 'image/jpeg';
    options.headers = {
      'Authorization': 'Client-ID <the id>'
    };
    options.params = {};
    ft = new FileTransfer();
    ft.upload(fileUrl, encodeURI(uploadServer), fileTransfer.uploadSuccess, fileTransfer.uploadFail, options);
  },


  uploadSuccess: function(r) {
    console.log(r);
  },

  uploadFail: function(err) {
    console.log(err);
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM