定义全局文件变量
List fileList = new List<File>();
创建拍照按钮
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('拍照上传'),
actions: _appBarActions(),
),
body: Text('拍照上传测试')
),
floatingActionButton: FloatingActionButton(
tooltip: 'Pick Image',
onPressed: _getImage,
child: Icon(Icons.add_a_photo),
heroTag: "image",
),
);
}
打开相机
//打开相机
Future _getImage() async {
var image = await ImagePicker.pickImage(
//调用摄像头,设置像素
source: ImageSource.camera, maxWidth: 800, maxHeight: 600);
if (image != null) {
fileList.add(image);
}
}
上传到服务器使用dio包
_upload(File image) async {
String path = image.path;
var name = path.substring(path.lastIndexOf("/") + 1, path.length);
var suffix = name.substring(name.lastIndexOf(".") + 1, name.length);
FormData formData = new FormData.from({
"file": new UploadFileInfo(image, name,
contentType: ContentType.parse("image/$suffix"))
});
response = await dio.post("UPLOAD_IMAGE", data: formData);
if (response ['success']) {
FileInformation fileInformation =
FileInformation.fromJson(response ['object']);
setState(() {
fileList.add(fileInformation);
});
} else {
failureTip(context, "错误", response ['message']);
}
}