Wordpress 颤振:如何通过RESTAPI上传图像?

Wordpress 颤振:如何通过RESTAPI上传图像?,wordpress,flutter,woocommerce,file-upload,woocommerce-rest-api,Wordpress,Flutter,Woocommerce,File Upload,Woocommerce Rest Api,我正在移动应用程序中使用WooCommerce Rest Api。现在我想更改配置文件图片,但我不知道如何通过WooCommerce Rest Api将图像上载到Wordpress站点,我已经尝试过了,但它显示HTTP错误403: Future<String> uploadImage(File imageFile) async { final StringBuffer url = new StringBuffer("$serverName/wp-js

我正在移动应用程序中使用WooCommerce Rest Api。现在我想更改配置文件图片,但我不知道如何通过WooCommerce Rest Api将图像上载到Wordpress站点,我已经尝试过了,但它显示HTTP错误403:

Future<String> uploadImage(File imageFile) async {
    final StringBuffer url =
        new StringBuffer("$serverName/wp-json/wp/v2/media");
    Dio dio = new Dio();

    try {
      FormData formData = FormData.fromMap(
        {"file": await MultipartFile.fromFile(imageFile.path)},
      );
      dio.options.headers["Authorization"] = "Bearer $token";

      var response = await dio.post(
        url.toString(),
        data: formData,
      );
      var respon = response.data;
      return respon["url"];
    } on DioError catch (e) {
      print(e.message);
    } catch (e) {
      print(e);
    }
  }
Future uploadImage(File-imageFile)异步{
最终字符串缓冲区url=
新的StringBuffer($serverName/wp-json/wp/v2/media);
Dio Dio=新的Dio();
试一试{
FormData FormData=FormData.fromMap(
{“file”:等待MultipartFile.fromFile(imageFile.path)},
);
dio.options.headers[“Authorization”]=“Bearer$token”;
var响应=等待dio.post(
url.toString(),
数据:formData,
);
var respon=response.data;
返回respon[“url”];
}关于错误捕获(e){
打印(电子信息);
}捕获(e){
印刷品(e);
}
}

有人能帮我吗?

您的
formData
数组必须遵循woo commerce rest API标准。 请查找和的woocommerce rest API文档

我有处理图像的PHP代码。让我分享一下,如果这对你转换成颤振代码有用的话
images
将使用
src
作为
url

$data = [
    'name' => 'Premium Quality',
    'type' => 'simple',
    'regular_price' => '21.99',
    'description' => 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.',
    'short_description' => 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.',
    'categories' => [
        [
            'id' => 9
        ],
        [
            'id' => 14
        ]
    ],
    'images' => [
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg'
        ],
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg'
        ]
    ]
];

print_r($woocommerce->post('products', $data));