gpt4 book ai didi

http - 如何使用http上传图片?

转载 作者:IT王子 更新时间:2023-10-29 06:56:10 36 4
gpt4 key购买 nike

我正在尝试使用 Flutter 的 http 插件上传图片。

以下是我的代码

Future<ImageUploadModel> postImage(File photoPath) async {
ImageUploadModel imageUploadModel;

var request = http.MultipartRequest(
"POST", Uri.parse("my_api_url"));

request.files.add(http.MultipartFile.fromBytes(
"photo", await File.fromUri(Uri.parse(photoPath.path)).readAsBytes(),
contentType: MediaType('image', 'jpg')));

final response = await request.send();

Uint8List responseByteArray = await response.stream.toBytes();

return standardSerializers.deserializeWith(ImageUploadModel.serializer, json.decode(utf8.decode(responseByteArray)));
}

我尝试使用 Postman 上传图片,并且图片已正确上传。

我已经按照堆栈上的链接进行操作,但我无法解决错误

Flutter: http post upload an image Flutter how to send multiple files to http post How to send an image to an api in dart/flutter? How to upload image in Flutter?

我得到的状态代码是 200,但是当我尝试访问响应中的任何变量时,我得到的是空字符串。

我尝试使用 Kotlin 和 Retrofit 使用 Native Android,它工作正常

我还尝试了 Dio

Dio dio = Dio();
FormData formdata = FormData();

formdata.add("photo", UploadFileInfo(photoPath, basename(photoPath.path)));
dio
.post("My_API_URL",
data: formdata,
options: Options(
method: 'POST',
responseType: ResponseType.json // or ResponseType.JSON
))
.then((response) {
print("2 $response");
return standardSerializers.deserializeWith(
ImageUploadModel.serializer, json.decode(response.data));
}).catchError((error) => print("3 $error"));

我不想将我的图像转换为 base64

最佳答案

我终于明白了。以下代码对我有用。

var request = http.MultipartRequest(
"POST", Uri.parse("MY_API_URL"));
var multipartFile = await http.MultipartFile.fromPath(
"photo", photoPath.path,
contentType: MediaType('image', 'jpeg'));
request.files.add(multipartFile);
http.StreamedResponse response = await request.send();
var responseByteArray = await response.stream.toBytes();

return ImageUploadModel.fromJson(
json.decode(utf8.decode(responseByteArray)));

只需根据您的要求更改 MediaType

关于http - 如何使用http上传图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57005844/

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