我正在创建简单的上传表单(用于 .zip 文件),我想验证 zip 是否包含以后需要的所有文件。
所以我有一个函数 isZipCorrect():
isZipCorrect = function() {
'use strict';
if (this.name.slice(-3) === 'zip') {
var fileReader = new FileReader();
var zip = new JSZip();
var shpCorrect = false;
fileReader.onload = function() {
var zip = new JSZip(this.result);
shpCorrect = zip.file(/.*?/).every(function(file) {
return (file.name.slice(-3) === 'shp' ||
file.name.slice(-3) === 'dbf' ||
file.name.slice(-3) === 'shx');
});
console.log(shpCorrect);
};
fileReader.readAsArrayBuffer(this.file);
return shpCorrect;
} else {
return true;
}
我if(isZipCorrect())
在 XMLHttpRequest 之前使用它。
我假设问题是异步函数(fileReader.onload),它在整个代码已经结束时结束操作。但我不想从 fileReader.onload 调用 send 函数,因为对我来说检查 Zip 是否正确必须是可选的(您应该能够上传其他无需“解析”即可通过的文件)