从 Flutter 应用程序向 nodejs 服务器发送图像
Posted
技术标签:
【中文标题】从 Flutter 应用程序向 nodejs 服务器发送图像【英文标题】:Sending an image to nodejs server from a flutter app 【发布时间】:2020-12-15 11:15:41 【问题描述】:我正在尝试从 Flutter 应用程序将图像发送到节点 js rest api,并且在服务器上没有收到图像(它在网络版本上工作正常,但在移动设备上文件没有被上传) Multer 用于在服务器端和客户端处理 multipart/form-data 我正在这样做
var request = MultipartRequest(
'PUT',
Uri.parse(
"URL",
));
request.headers['authorization'] = token;
request.headers['Content-Type'] = 'multipart/form-data';
request.files.add(MultipartFile(
'userUrl',
image.readAsBytes().asStream(),
image.lengthSync(),
));
StreamedResponse res = await request.send();
image 是一个 File 对象,我使用的是 http 包,但我也尝试使用 dio,结果相同。
【问题讨论】:
【参考方案1】:我找到了问题,只是mimetype丢失了:
String fileName = image.path.split('/').last;
final mimeTypeData =
lookupMimeType(image.path, headerBytes: [0xFF, 0xD8]).split('/');
var request = MultipartRequest(
'PUT',
Uri.parse(
"url",
));
request.headers['authorization'] = token;
request.headers['Content-Type'] = 'multipart/form-data';
request.files.add(await MultipartFile.fromPath('userUrl', image.path,
contentType: MediaType(mimeTypeData[0], mimeTypeData[1])));
StreamedResponse res = await request.send();
【讨论】:
以上是关于从 Flutter 应用程序向 nodejs 服务器发送图像的主要内容,如果未能解决你的问题,请参考以下文章
在开发中设置用于从 Angular 向 NodeJS 发送 API 请求的服务器端口
如何在 Flutter Web 应用中使用 NodeJS 包
Flutter 物理 iOS 设备无法向我的本地 asp.net 服务器发出 api 请求