Flutter:无法通过 dio post 请求上传图片。正在上传文件但是打不开

Flutter: failed to upload image with dio post request. File uploading but cant open it

正在上传文件但打不开。文件是196kb,上传到服务器的是191kb,已经坏了(打不开)。我先尝试使用 dart http,但遇到了同样的错误。这就是我正在做的事情;

void getFile() async {
    FilePickerResult result = await FilePicker.platform.pickFiles(
      type: FileType.custom,
      allowedExtensions: ['jpg', 'mp4', 'mov', 'png', 'jpeg'],
      allowMultiple: false,
    );
    if (result != null) {
      PlatformFile file = result.files.first;
      var dio = new Dio();
      dio.options.baseUrl = uri;
      FormData formData = new FormData.fromMap({
        "filename":
            await MultipartFile.fromFile(file.path, filename: file.name),
        // "data": MultipartFile.fromBytes(file.bytes, filename: file.name),
      });
      var response = await dio.post(
        "/upload/${file.path.split('/').last}",
        data: formData,
      );
      if (response.statusCode == 200) {
        print(response);
        // final player = json.decode(response.body);
        // checkState(player);
      } else {
        throw Exception('Failed to upload a file');
      }
    } else {
      // User canceled the picker
    }
  }

这也是 node.js 服务器上的请求

service.post("/upload/:filename", function (req, res) {
  console.log(req);
  var filename = path.basename(req.params.filename);
  filename = path.resolve("app/media", filename.replace(/\s/g, ""));
  var dst = fs.createWriteStream(filename);
  req.pipe(dst);
  dst.on("drain", function () {
    console.log("Yukleniyor... ", new Date());
    req.resume();
  });
  req.on("end", function () {
    console.log("Tamamlandi... " + filename);
    res.end(JSON.stringify(MyPlayer));
  });
});

编辑 这是 web cli

上的工作示例
const selectedFile = document.getElementById("media").files[0];
  $.ajax({
    type: "POST",
    url: target + "/upload/" + selectedFile.name,
    data: selectedFile,
    processData: false,
    contentType: false,
  }).done(function (data) {
    document.getElementById("label").innerHTML = data;
  });

既然你已经尝试使用 Http 和 Dio 并得到同样的错误,那么问题应该在服务器上而不是 Flutter 代码上。