gpt4 book ai didi

flutter - 如何在 Flutter 中将图像和文件上传到服务器?

转载 作者:IT老高 更新时间:2023-10-28 12:29:36 35 4
gpt4 key购买 nike

我使用网络服务进行图像处理,它在 Postman 中运行良好:

postman screenshot

现在我想用 Dart 发出 http 请求:

import 'package:http/http.dart' as http;

static ocr(File image) async {
var url = '${API_URL}ocr';
var bytes = image.readAsBytesSync();

var response = await http.post(
url,
headers:{ "Content-Type":"multipart/form-data" } ,
body: { "lang":"fas" , "image":bytes},
encoding: Encoding.getByName("utf-8")
);

return response.body;

}

但我不知道如何上传图像文件,在上面的代码中我得到异常:Bad state: Cannot set the body fields of a Request with content-type "multipart/form-data"。
请求正文应该怎么写?

最佳答案

您的解决方法应该有效;许多服务器将接受 application/x-www-form-urlencoded 作为替代方案(尽管数据的编码效率较低)。

但是,可以使用 dart:http 来执行此操作。您需要使用 http.MultipartFile 对象,而不是使用 http.post

来自 dart documentation :

var request = new http.MultipartRequest("POST", url);
request.fields['user'] = 'someone@somewhere.com';
request.files.add(http.MultipartFile.fromPath(
'package',
'build/package.tar.gz',
contentType: new MediaType('application', 'x-tar'),
));
request.send().then((response) {
if (response.statusCode == 200) print("Uploaded!");
});

关于flutter - 如何在 Flutter 中将图像和文件上传到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49125191/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com