簡體   English   中英

我如何在顫動中使用 dio 發布圖像

[英]How can i post image with dio in flutter

我想通過 dio 包以 jpg 格式將圖像發送到服務器,我該怎么做?

選擇圖像方法:

  void _chooseImageCamera() async {
file = await ImagePicker.pickImage(source: ImageSource.camera,imageQuality: 50);
setState(() {
  file = file;
  print(file);
});

上傳圖片方法:

  void _upload() async {
if (file == null) return;
String fileName = file.path.split('/').last;
Map<String, dynamic> formData = {
  "image": await MultipartFile.fromFile(file.path,filename: fileName),
};
await serverRequest().getRequest("/Information", formData).then((onValue) {
  print(json.decode(onValue));
});

有人幫我嗎?

謝謝

請試試這個

       Future<dynamic> _upload() async {
            if (file == null) return;
            String fileName = file.path.split('/').last;
            Map<String, dynamic> formData = {
              "image": await MultipartFile.fromFile(file.path,filename: fileName),
            };
           return await Dio()
        .post(url,data:formData).
    then((dynamic result){
    print(result.toString());
});
}

您也可以為此使用 http

Future<String> uploadImage(Asset asset,String orderId) async {

  // String to uri
  Uri uri = Uri.parse('Your URL');

  // create multipart request
  http.MultipartRequest request = http.MultipartRequest("POST", uri);

  ByteData byteData = await asset.getByteData();
  List<int> imageData = byteData.buffer.asUint8List();



  http.MultipartFile multipartFile =  http.MultipartFile.fromBytes(
   'image',
   imageData,
   filename: '${DateTime.now().millisecondsSinceEpoch}.jpg',
   contentType: MediaType("image", "jpg"),
  );

  // Add field to your request
  request.fields['FieldName'] = fieldValue;

  // add file to multipart
  request.files.add(multipartFile);
  // send
  var response = await request.send();

  // Decode response
  final respStr = await response.stream.bytesToString();

  return respStr;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM