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));
}