使用org.apache.cordova.file插件我可以选择该文件,然后获取文件的本机路径。之后,我必须限制用户根据文件大小选择文件。但我无法获得文件大小。我的问题是我无法使用该插件获取文件大小。为此我使用this tutorial.
答案 0 :(得分:4)
要获取文件大小,您需要通过元数据访问它,如下所示:
window.resolveLocalFileSystemURL(filePath,
function (fileSystem) {
fileSystem.getFile(fileName, {create: false},
function (fileEntry) {
fileEntry.getMetadata(
function (metadata) {
alert(metadata.size); // get file size
},
function (error) {}
);
},
function (error) {}
);
},
function (error) {}
);
答案 1 :(得分:3)
此代码更紧凑,因为您不需要调用getMetadata函数,size已经是fileEntry的属性
function gotPhoto(imageUri) {
window.resolveLocalFileSystemURI(imageUri,
function(fileEntry) {
fileEntry.file(function(fileObj) {
console.log("Size = " + fileObj.size);
},
function (error) {});
}, function (error) {}
);
}
答案 2 :(得分:1)
不推荐使用函数ref = FIRDatabase.database().reference()
ref.child("rooms/room1").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists(){
print("true rooms exist")
}else{
print("false room doesn't exist")
}
})
,此外,您可能需要具有特定的专用透明函数。
因此您可以声明此功能。
window.resolveLocalFileSystemURI
然后只是像这样使用它
function getFileSize(fileUri) {
return new Promise(function(resolve, reject) {
window.resolveLocalFileSystemURL(fileUri, function(fileEntry) {
fileEntry.file(function(fileObj) {
resolve(fileObj.size);
},
function(err){
reject(err);
});
},
function(err){
reject(err);
});
});
}