Django 如何在flatter中上传图像

Django 如何在flatter中上传图像,django,flutter,dart,restapi,Django,Flutter,Dart,Restapi,你好,我想上传图片在颤振 我尝试使用http.MultipartRequest 像这样 request.fields["name"] = "$RegisterName"; request.fields["description"] = "$RegisterDescription"; request.fields["caution"] = "$RegisterCaution&q

你好,我想上传图片在颤振

我尝试使用http.MultipartRequest 像这样

  request.fields["name"] = "$RegisterName";
  request.fields["description"] = "$RegisterDescription";
  request.fields["caution"] = "$RegisterCaution";
  request.fields["price"] = "$RegisterPrice";
  request.fields["price_prop"] = "$RegisterPriceProp";
  request.fields["user.id"] = "1";
  request.fields["lend"] = "$RegisterCategory";
  request.fields["category"] = "Digital";
  request.fields["place_option"] = "true";

  var multipartFile = http.MultipartFile.fromBytes(
    'file',
    (await rootBundle.load('assets/images/main_1.jpg')).buffer.asUint8List(),
    filename: 'test01.jpg',
    contentType: MediaType('image', 'jpg'),
  );

  request.files.add(multipartFile);
  

  var response = await request.send();

  if (response.statusCode == 200) print('Upload');
}
但是这个代码不起作用 如果我使用此代码,则只上载另一个数据

那么json类型是这样的


我想上传图片文件…:(

我用它发送带有formData的图片

var head = Api().bearerHeader; ////just bearerToken
var request = http.MultipartRequest(
    'POST',
    Uri.parse(
        'https://c.....'));
request.files
    .add(await http.MultipartFile.fromPath('TITLEOFFORMDATA', imageFile.path));
request.headers.addAll(head);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
  String varo = await response.stream.bytesToString();
}

这就是如何使用软件包将图像发送到服务器的方法


谢谢。但是我还有一个问题:((操作系统错误:没有这样的文件或目录,errno=2)我能做什么…?实际上我不理解上传系统…@Lily你必须将你的资产图像转换成
文件
格式请参考此链接
 try {
    final uri = Uri.parse(your_url);

    final request = http.MultipartRequest('POST', uri);

    final multipartFile =
        await http.MultipartFile.fromPath('Image', 'your_path_of_image'); // Image is the parameter name 

    request.files.add(multipartFile);

    request.fields['userId_if_required'] = value;

    final response = await request.send();
    if (response.statusCode == 200) {
      print('success');
    } else {
      print('Something went wrong');
    }
  } catch (e) {
    print('Something went wrong');
  }