From b624cec60f21c4d8297b58425ee4db2757cfbcf2 Mon Sep 17 00:00:00 2001 From: Dave MacFarlane Date: Thu, 20 Jan 2022 13:49:14 -0500 Subject: [PATCH] Add support for gzipped files to loadFromURL Loading a nii.gz from disk works, however the loadFromURL path goes through a different code path which only supports uncompressed files. This adds support for loading nii.gz files with nii_url as well as nii_file without having to decompress and stream the file server side. --- src/brainbrowser/lib/loader.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/brainbrowser/lib/loader.js b/src/brainbrowser/lib/loader.js index 85bef763..4c0c761b 100644 --- a/src/brainbrowser/lib/loader.js +++ b/src/brainbrowser/lib/loader.js @@ -73,7 +73,18 @@ // Based on jQuery's "success" codes. if(status >= 200 && status < 300 || status === 304) { if (!loader.checkCancel(options)) { - callback(request.response, filename, options); + var result = request.response; + try { + /* See if the data can be inflated. + */ + var unzipped = pako.inflate(result); + result = unzipped.buffer; + } catch(e) { + /* pako probably didn't recognize this as gzip. + */ + } finally { + callback(result, filename, options); + } } } else { var error_message = "error loading URL: " + url + "\n" +