diff --git a/bits/21_ziputils.js b/bits/21_ziputils.js index 53f81f8..c0c195a 100644 --- a/bits/21_ziputils.js +++ b/bits/21_ziputils.js @@ -15,8 +15,14 @@ function getdata(data) { function safegetzipfile(zip, file) { var f = file; if(zip.files[f]) return zip.files[f]; - f = file.toLowerCase(); if(zip.files[f]) return zip.files[f]; - f = f.replace(/\//g,'\\'); if(zip.files[f]) return zip.files[f]; + + var lowerCaseFiles = {}; + for (var key in zip.files) { + lowerCaseFiles[key.toLowerCase()] = zip.files[key]; + } + + f = file.toLowerCase(); if(lowerCaseFiles[f]) return lowerCaseFiles[f]; + f = f.replace(/\//g,'\\'); if(lowerCaseFiles[f]) return lowerCaseFiles[f]; return null; } diff --git a/xlsx.js b/xlsx.js index 580086d..2dbcb49 100644 --- a/xlsx.js +++ b/xlsx.js @@ -1314,8 +1314,14 @@ function getdata(data) { function safegetzipfile(zip, file) { var f = file; if(zip.files[f]) return zip.files[f]; - f = file.toLowerCase(); if(zip.files[f]) return zip.files[f]; - f = f.replace(/\//g,'\\'); if(zip.files[f]) return zip.files[f]; + + var lowerCaseFiles = {}; + for (var key in zip.files) { + lowerCaseFiles[key.toLowerCase()] = zip.files[key]; + } + + f = file.toLowerCase(); if(lowerCaseFiles[f]) return lowerCaseFiles[f]; + f = f.replace(/\//g,'\\'); if(lowerCaseFiles[f]) return lowerCaseFiles[f]; return null; }