Загрузить захваченное изображение из приложения Phonegap в WordPress REST API - PullRequest
0 голосов
/ 29 апреля 2019

Я занимаюсь разработкой приложения с PhoneGap (Vue, Framework7) и бэкэндом WordPress.

Я пытаюсь загрузить захваченное изображение в бэкэнд WordPress через конечную точку REST API мультимедиа (используя axios), но получаю ошибку обратно.

Изображение корректно отображается в приложении (с использованием 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, поэтому проблем не должно быть (но кто знает?).

Но у меня уже есть ошибка типа "ресурс запрещен по соображениям безопасности" (обойдено с define('ALLOW_UNFILTERED_UPLOADS', true); в wp-config.php).

Я мог бы решить эту проблему ранее с помощью пользовательской конечной точки API и с помощью средства чтения файлов / больших двоичных объектов, но сейчас для меня важно использовать «официальную» конечную точку.

Кто-нибудь знает, как это решить? (Я уже читал много постов на SO (и в других местах), но ничего не получалось.)

...