Я занимаюсь разработкой приложения с 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 (и в других местах), но ничего не получалось.)