import 'dart:io';
import 'package:dio/dio.dart';
//import 'package:image/image.dart';
import 'package:path/path.dart' as path;
import 'package:http_parser/http_parser.dart';
void main() {
var file = File("D:/1.txt");
_uploadImage(file);
}
_uploadImage(File _imageDir) async {
var fileDir = _imageDir.path;
var basename = path.basename(fileDir);
FormData formData = FormData.fromMap({
"reqid": "172d45ab54cdd",
"cmd": "upload",
"target": "l2_Lw",
// "file": await MultipartFile.fromFile(fileDir,
// filename: basename, contentType: MediaType('image', 'jpeg')),
"upload[]": await MultipartFile.fromFile(fileDir,
filename: basename, contentType: MediaType('image', 'jpeg')),
});
// var response =
// await Dio().post("http://jd.itying.com/imgupload", data: formData);
// //{"success":"true","path":"/public\\upload\\obhAbgmCB5tcp3wDrf9MsiOT.txt"}
// //http://jd.itying.com/upload/obhAbgmCB5tcp3wDrf9MsiOT.txt
var dio = Dio();
dio.interceptors.add(LogInterceptor(request: true, requestBody: true));
var response = await dio.post("http://192.168.2.91/php/connector.minimal.php",
data: formData);
//go elfinder....
// var response =
// await Dio().post("http://192.168.2.91:8000/connector", data: formData);
print("==================");
print(response);
}
IconButton(
onPressed: loadAssets,
icon: Icon(Icons.photo),
),
Future<void> loadAssets() async {
List<Asset> resultList = List<Asset>();
String error = 'No Error Dectected';
try {
resultList = await MultiImagePicker.pickImages(
maxImages: 9,
enableCamera: true,
selectedAssets: images,
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"),
materialOptions: MaterialOptions(
actionBarColor: "#abcdef",
actionBarTitle: "Example App",
allViewTitle: "All Photos",
useDetailsView: false,
selectCircleStrokeColor: "#000000",
startInAllView: true),
);
} on Exception catch (e) {
error = e.toString();
}
if (!mounted) return;
setState(() {
images = resultList;
_error = error;
});
}
RaisedButton(
color: Colors.green,
child: Text(
'发布',
style: TextStyle(color: Colors.white, fontSize: 17),
),
onPressed: uploadImageToServer
),
// 上传图片数据到Springboot后台
uploadImageToServer() async {
List<MultipartFile> imageList = new List<MultipartFile>();
String url = "http://192.168.0.105:8989/users/user/testSend";
for (Asset asset in images) {
ByteData byteData = await asset.getByteData();
List<int> imageData = byteData.buffer.asUint8List();
MultipartFile multipartFile = new MultipartFile.fromBytes(
imageData,
filename: 'load_image',
contentType: MediaType("image", "jpg"),
);
imageList.add(multipartFile);
// print("图片数据:$imageData");
}
print("图片数量:${imageList.length}");
FormData formData = FormData.fromMap({
"multipartFiles": imageList,
"test" : "test",
});
Dio dio = new Dio();
var response = await dio.post(url, data: formData);
//响应处理
if (response.data["success"]) {
print(response.data);
Fluttertoast.showToast(
msg: "博客上传成功,等待审核",
gravity: ToastGravity.CENTER,
textColor: Colors.grey,
);
} else {
Fluttertoast.showToast(
msg: "博客上传失败,请稍后再试",
gravity: ToastGravity.CENTER,
textColor: Colors.grey,
);
}
}