flutter 多文件上傳

1、從手機(jī)相機(jī)選擇器獲取圖片


resultList =await MultiImagePicker.pickImages(

// 選擇圖片的最大數(shù)量

  maxImages:_medicalImageMaxLength -_medicalImages.length,

  // 是否支持拍照

  enableCamera:true,

  materialOptions:MaterialOptions(

// 顯示所有照片,值為 false 時(shí)顯示相冊(cè)

      startInAllView:true,

      allViewTitle:'所有照片',

      actionBarColor:'#2196F3',

      textOnNothingSelected:'沒(méi)有選擇照片'

  ),

);

2、提交到服務(wù)器


ByteData data =await image.getByteData();

final buffer = data.buffer;

FormData form =FormData.fromMap({

  'name': image.name,

  'file':MultipartFile.fromBytes(buffer.asUint8List(data.offsetInBytes, data.lengthInBytes)),

});

await Dio().post(r.host, data: form);

3、重點(diǎn):ByteData轉(zhuǎn)File

final filename = 'test.jpg';
var bytes = await rootBundle.load("assets/test.jpg");
String dir = (await getTemporaryDirectory()).path;
File file = writeToFile(bytes,'$dir/$filename');

Future<void> writeToFile(ByteData data, String path) {
  final buffer = data.buffer;
  return new File(path).writeAsBytes(
      buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。