我正在使用react-native-fetch-blob库。但是,当发送404消息时,它会创建一个空文件并将其称为blag6.zip。这是我的代码:
try {
response = await RNFetchBlob
.config({
path: RNFetchBlob.fs.dirs.DocumentDir + "/temp/blag6.zip"
})
.fetch(
'POST',
'http://example.com/data/getTestSet.php',
{
'Accept': 'application/json',
'Content-Type': 'application/json'
},
JSON.stringify({
'passcode': "pass123",
'group_id': "1",
'file': "ShgRG/suvA/blag.zip"
})
)
temp_file = RNFS.DocumentDirectoryPath + "/temp/blag6.zip"
output_path = RNFS.DocumentDirectoryPath + "/output
await ZipArchive.unzip(temp_file, output_path)
console.log("This line is never reached.")
}
catch (err){
console.log(err)
}
我收到以下错误:
Error: Failed to extract file File too short to be a zip file: 0
有没有办法阻止RNFetchBlob保存空文件并引发错误?我怎么知道错误是什么?
更新
目前我正在使用以下内容进行临时修复:
status = response.info().status
//check if file exists here, throw error otherwise
file_name = RNFetchBlob.fs.dirs.DocumentDir + "/temp/blag6.zip"
file_stat = await RNFS.stat(file_name);
file_size = file_stat.size;
if (status != 200 || file_size == 0){
await RNFS.unlink(file_name);
throw "My error message";
}
如果没有可用的RNFetchBlob,是否还有原因?如果没有要保存的文件,有没有办法阻止它创建一个空文件?