flutter upload dio elfinder

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值