使用fetch()上传WP REST API媒体

时间:2017-06-28 13:51:13

标签: javascript wordpress wp-api

我正在尝试使用fetch()使用JS(React Native)在WP Rest API中执行媒体上传。

这是我到目前为止所做的:

fetch('https://www.example.fr/wp-json/wp/v2/media', {
        method: 'post',
        headers: new Headers({
          'Content-Type': 'image/jpeg',
          'Authorization': 'Basic d3GtcmVzdC1sdfGktY2xpZW50Onefepbl9hdh90aWJldA==',
          'Content-Disposition': 'attachment; filename="user-'+userId+'.jpg"'
        }),                
        body: imageBase64Data
      })
      .then(function (response) {
        console.log(response);
      });

imageBase64Data设置如下:

let imageBase64Data = 'data:image/png;base64,'+ imageData;

imageDatareact-native-image-picker response.data:https://github.com/react-community/react-native-image-picker#the-response-object

这是我的问题:媒体在我的WP上成功创建,但图像为空(没有数据,大约15B)。所以我猜测有些东西搞砸了我作为我的请求正文发送的数据。但我不知道是什么。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

为了记录,以下是我最终使用react-native-fetch-blob模块最终解决此问题的方法:

 RNFetchBlob.fetch('post', 'https://www.example.fr/wp-json/wp/v2/media', 
      {                    
        'Content-Type': 'image/jpeg',
        'Authorization': 'Basic dqdsfqsdfpbl9hqsdfdsfWJldA==',
        'Content-Disposition': 'attachment; filename="user-'+userId+'.jpg"'
      }

    ,imageUri) // imageUri = RNFetchBlob.wrap(imageUri);
    .then(function (response) {
      console.log(response); // returns a 201 response with id of the attached media
    });