Flutter上传图片

老规矩,屁话不多说,直接上代码

1.导入图片选择框架  image_picker: ^0.6.7+21

   导入网络请求框架 dio: ^3.0.10

版本号自己可以去pub.dev上找合适自己的

2.选择图片分2种情况:

// type可根据自己需求定义,我这里定位为2种情况

void uploadHeader(String type) async {

    PickedFile pickedFile;

    if (type == '拍照') {

     // (1)用相机拍照:

      pickedFile = await picker.getImage(source: ImageSource.camera);

    }else {

    // (1)选择相册的照片:

      pickedFile = await picker.getImage(source: ImageSource.gallery);

    }

   //获取图片路径

    String path = pickedFile.path;

    //设置图片名字

    var name = path.substring(path.lastIndexOf("/") + 1, path.length);

    //设置上传接口所需的参数,这里需要根据自己实际的服务器情况填写,我这边是需要添加一个scene字段

    FormData formdata = FormData.fromMap({

      "file": await MultipartFile.fromFile(path, filename:name),

      'scene':'other'

    });

    Dio dio = new Dio();

    // 直接发起请求,将上面的data带入进去

    var respone = await dio.post('http://192.168.4.5:8002/uploaders', data: formdata);

    if (respone.statusCode == 200) {

      print('上传成功');

       // 这里具体看后台服务器如何返回数据,一般都是返回云服务器的图片地址

      print(respone);

      var data= jsonDecode(respone.toString());

      print(data);

      print(data['url']);

    }

  }


大功搞成!

你可能感兴趣的:(Flutter上传图片)