将捕获的图像从Phonegap应用程序上传到WordPress REST API

时间:2019-04-29 08:16:32

标签: wordpress cordova vue.js phonegap

我正在使用PhoneGap(Vue,Framework7)和WordPress后端开发应用程序。

我正在尝试通过媒体REST API端点(使用axios)将捕获的图像上传到WordPress后端,但返回错误。

该图像在应用中正确显示(使用DATA_URL-base64编码),但是当我尝试将其上传到端点时,会引发错误。

const apiHost = 'https://example.com/wp-json'
let image_form_data = new FormData

// self.images[0] is the first base64 encoded image stored in a Vuex store
// self.jwToken is the JavaScript Web Token string
image_form_data.append( 'file', self.images[0] )

const imagesOptions = {
  method: 'post',
  url: apiHost + '/wp/v2/media',
  headers: {
    "Accept": "application/json",
    "Content-Type": "multipart/form-data",
    "Authorization": 'Bearer ' + self.jwToken,
    "Content-Disposition": "attachment; filename=\"uploaded_image.png\"",
    "Cache-Control": "no-cache"
  },
  data: image_form_data
}

axios( imagesOptions )
.then( (imgResp) => {
  console.log('imgResp')
  console.log(imgResp)
} )

它抛出一个错误:

URL: https://example.com/wp-json/wp/v2/media
State: 500 Internal Server Error
Source: Network

服务器设置为接受16M文件上传,因此应该没有问题(但是谁知道呢?)。

但是我已经出现了类似“出于安全原因不允许使用资源”的错误(在wp-config.php中被define('ALLOW_UNFILTERED_UPLOADS', true);所绕过了。)

我可以使用自定义API终结点并使用filereader / blob来解决该问题,但是现在使用“官方”终结点对我来说很重要。

有人知道如何解决吗? (我已经阅读了很多有关SO(及其他)的文章,但没有任何效果。)

0 个答案:

没有答案