Flutter桌面文件选择器结果文件.字节返回null错误?



我正在构建Flutter桌面/Web应用程序。我使用Flutter file_picker 4.02 pub its在转换桌面应用程序后,它在文件选择中有错误返回

file.byte 返回值null

FilePickerResult吗?result = await FilePicker.platform.pickFiles();

if (result != null) {
PlatformFile file = result.files.first;
print(file.name);
**print(file.bytes);**
print(file.size);
print(file.extension);
print(file.path);


} else {
// User canceled the picker
}

我需要得到选定的结果作为字节吗?

颤振通道:Devfile_picker: ^ 4.0.2

我只选择一个文件从chrome上传。我使用Stream.fromIterable将字节映射到数组中。我用文件名、文件大小和字节数组创建了一个MultipartFile。接下来,我使用dio将FormData发布到一个webapi。[FromForm]用于从dio发布的formData中提取数据。IFormData绑定到多部分表单数据。

FilePickerResult result = await FilePicker.platform.pickFiles(type:  FileType.any, allowMultiple: false);
var fileName = result.files.first.name;
var fileSize = fileBytes.length;
FormData formData=FormData.fromMap({
'id':id,
'name':submitter,
'file': MultipartFile(
Stream.fromIterable(fileBytes.map((e) => [e])),
fileSize,
filename: fileName,
)}) ;
var url = Uri.parse(_BASE_URL + 'api/review/upload');
Dio dio=new Dio();
try
{
String token = this.dataCache?.login?.jwtToken??"";
Options options=new Options(
contentType: Headers.formUrlEncodedContentType,
headers:{
Headers.contentLengthHeader: formFile.length,
}
);
options.headers["Authorization"] = "Bearer " + token;

dio.post(url.toString(),data:formFile, options:options);

Webapi

public class FlutterFormData
{
public int Id { get; set; }
public string Name { get; set; }
public IFormFile file { get; set; }
}
public async Task<IActionResult> UploadDocument([FromForm] FlutterFormData 
formData, string name)
{
String retVal = "unprocessed";
if (formData.file != null)
{
if (formData.file.Length > 0)
{
var filePath = Path.GetTempFileName();
using (var stream = System.IO.File.Create(filePath))
{
await formData.file.CopyToAsync(stream);
retVal = "Processed";
}
}
}
return Ok(retVal);
}