我有使用Dart的客户端和服务器应用程序。客户端将song.m4a文件发送到服务器。服务器尝试使用shelf_multipart库读取该文件。
阅读文件时,服务器报告FormatException:缺少扩展字节(偏移量44处)。
发送文件的客户端代码如下:'
Future<String> sendFile() async {
var uri = Uri(scheme: 'https',host: 'localhost',port: 8443, path: '/readSong');
// create multi-part file
// read file Content
var myFile = File(filename);
var mediaType = MediaType('application', 'octet-stream');
var fileContent = await myFile.readAsBytes();
var multipartFile = http.MultipartFile.fromBytes('file', fileContent,
filename: 'mySong.m4a', contentType: mediaType);
// make multipart request
var req = http.MultipartRequest('post', uri);
req.headers.addAll({
'company-name': 'myCompany',
'Content-Type': 'multipart/form-data',
});
req.fields.addAll({'author': 'meAuthor', 'file': 'song.m4a'});
req.files.add(multipartFile);
var response = await req.send();
print(response.toString());
}
Server side code as below:
dynamic readSong(shelf.Request req) async {
final parameters = <String, String>{
await for (final formData in req.multipartFormData)
formData.name: await formData.part.readString(),
};
//***** Error is generated in this loop ******
阅读author字段后,服务器报告以下错误:
Format Exception: Missing extension byte (at offset 44))
Macos Monterey 12.6.3
1条答案
按热度按时间wlsrxk511#
对于二进制数据,我必须更改以下内容
至