【问题标题】:Flutter: How to upload image by WooCommerce rest api?Flutter:如何通过 WooCommerce rest api 上传图片?
【发布时间】:2021-05-05 08:22:43
【问题描述】:

我在移动应用程序中使用 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);
    }
  }

谁能帮帮我?

【问题讨论】:

    标签: wordpress flutter woocommerce file-upload woocommerce-rest-api


    【解决方案1】:

    您的 formData 数组必须遵循 woo-commerce rest API 标准。 请查找 product propertiesproduct image properties 的 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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-21
      • 2022-07-26
      • 2021-02-05
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多