gpt4 book ai didi

web - Dart文件上传:较大的文件未完全上传

转载 作者:行者123 更新时间:2023-12-03 04:17:01 25 4
gpt4 key购买 nike

我用dart实现了fileupload。
这是我的客户所做的:

Future upload(String url, File file){
Completer completer = new Completer();
FileReader fileReader = new FileReader();
fileReader.onLoad.listen((e){
HttpRequest request = new HttpRequest();
Map<String,String> headers = createHeaders();
request.open('POST',url);
for(String key in headers.keys){
request.setRequestHeader(key,headers[key]);
}
request.send(fileReader.result);
});
fileReader.onLoadEnd.listen((e)=>completer.complete());
fileReader.readAsArrayBuffer(file);
return completer.future;
}

这就是服务器的作用:
 Future saveFileContent(String fileId,   HttpRequest request)async{
Completer completer = new Completer();
File file = new File('${pathResolver.files}/${fileId}');
await file.create(recursive: true);
request.listen((data){
file.writeAsBytesSync(data);
},onDone: (){
completer.complete();
});
return completer.future;
}

对于小文件,一切正常,但是当我尝试上传较大的文件(在我的测试用例中约20MB)时,服务器上仅保存了一些MB。有一个想法所有这些字节都丢失了吗?

最佳答案

writeAsByteSync将截断任何现有文件,因此确实将写入接收到的最后一个数据,并且将删除先前接收的数据。您可以先尝试创建文件,然后使用mode: FileMode.APPEND参数writeAsByteSync

关于web - Dart文件上传:较大的文件未完全上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38230858/

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