在 Flutter 中上传带有 http.post 和注册表单的图像?
Posted
技术标签:
【中文标题】在 Flutter 中上传带有 http.post 和注册表单的图像?【英文标题】:Upload image with http.post and registration form in Flutter? 【发布时间】:2020-03-05 16:56:18 【问题描述】:所以我想用一堆其他变量(字符串)将文件(图像)上传到服务器
字符串 firstname , lastname ,birthDay, phone , adresse ;文件图片;
return http.post(
uri,
headers:
'Accept': 'application/json',
"Authorization": "Bearer $token",
,
body: body,
encoding: encoding,
);
Future<http.Response> postRegisteration() async
return await api.httpPost('fotApp/master', body:
'firstname': 'lorem',
'lastname': 'lorem',
'birthDay': 'lorem',
'adresse': 'lorem',
'phone': 'lorem',
'image': 'lorem'
).then((reponse)
var data = jsonDecode(reponse.body);
print(data);
);
【问题讨论】:
【参考方案1】:试试这样的
在fileList中,你应该添加任何你想上传的文件
List<MultipartFile> fileList = List();
fileList.add(MultipartFile.fromBytes(
'documents', await filePath.readAsBytes(),
filename: fileName));
其他部分参数使用params map
Map<String, String> params =
"first_name": widget.mUserDetailsInputmodel.firstName,
"last_name": widget.mUserDetailsInputmodel.lastName,
"email": widget.mUserDetailsInputmodel.emailAddress,
;
然后像这样发送请求
Future<String> multipartRequest(var url, var partParams, var files) async
Map<String, String> headers =
"X-API-KEY": X_API_KEY,
"Accept": "application/json",
"User-Auth-Token": authToken ;
var request = http.MultipartRequest("POST", Uri.parse(url));
request.headers.addAll(headers);
if (partParams != null) request.fields.addAll(partParams);// add part params if not null
if (files != null) request.files.addAll(files);// add files if not null
var response = await request.send();
var responseData = await response.stream.toBytes();
var responseString = String.fromCharCodes(responseData);
print("responseBody " + responseString);
if (response.statusCode == 200) return responseString;
【讨论】:
非常感谢兄弟,我明天会在工作中测试解决方案,看看它是否正确,但只要看看它我就知道它应该可以工作以上是关于在 Flutter 中上传带有 http.post 和注册表单的图像?的主要内容,如果未能解决你的问题,请参考以下文章
Http POST 在 Postman 中有效,但在 Flutter 中无效
为啥我在flutter中更新http包后不能在http.post方法中放一个字符串
Flutter DIO:使用带有 Dio 包的二进制体上传图像
Facebook API 使用带有多部分表单数据的 HTTP POST 请求的错误响应