gpt4 book ai didi

dart - '_File' 不是类型转换中类型 'String' 的子类型

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

当我尝试从 Flutter 上传图片到服务器时,出现了这个错误。我不知道如何将文件传递给 HTTP POSST 方法,但我使用 image_picker 插件获取了图像并获取了文件路径。

我的文件路径是

:I/flutter ( 9123): File: '/storage/emulated/0/Android/data/com.example.myapp/files/Pictures/2798d03d-2c6b-4f80-8198-94866dfc45962028103221680196242.jpg'

我的 POST 方法是这样的;

var response = await 

http.post("http://206.189.92.174:4000/API/Posts/Cube_Post_Submit",

body :
{
'attachments' : files ,
'User_Id' : "5acc5d6e1295332c28f7e205",
'Cubes_Id' : jsonstring,
'Post_Text' : "hello",
'Post_Category' : "Story",
'Post_Link': ""
}
);
print(response.body);

错误会是这样的:

[ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled exception: E/flutter ( 9123): type '_File' is not a subtype of type 'String' in type cast E/flutter ( 9123): #0 Object._as (dart:core/runtime/libobject_patch.dart:74:25) E/flutter ( 9123): #1
CastMap.forEach. (dart:_internal/cast.dart:323:25) E/flutter ( 9123): #2
__InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach (dart:collection/runtime/libcompact_hash.dart:365:8) E/flutter ( 9123): #3 CastMap.forEach (dart:_internal/cast.dart:322:13)

最佳答案

files 在您的代码中看起来像复数,但您的代码没有显示详细信息。

这是获取单个文件的代码,它作为一个数组发送,其中可以添加多个条目[fileContentBase64][file1ContentBase64, file2ContentBase64, file3ContentBase64]

import 'dart:convert';

...
var fileContent = file.readAsBytesSync();
var fileContentBase64 = base64.encode(fileContent);

var response = await http.post("http://206.189.92.174:4000/API/Posts/Cube_Post_Submit",

body :
{
'attachments' : [fileContentBase64] ,
'User_Id' : "5acc5d6e1295332c28f7e205",
'Cubes_Id' : jsonstring,
'Post_Text' : "hello",
'Post_Category' : "Story",
'Post_Link': ""
}
);
print(response.body);

关于dart - '_File' 不是类型转换中类型 'String' 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52276158/

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