As Chris has mentioned, the browser's download behavior's might be your problem. Some browsers may prevent automated downloading of multiple files for security reasons, so you may need to implement a way for the user to initiate the download for each file.
Another issue might be that not all the files have a valid image extension i.e. jpg, png etc.
Using your code above, you can try the following function that includes checking for image extensions -
function unzipfeb146() {
fetch('http://localIP/CBT/R3Images/QBQuestionImages/8688.zip')
.then(response => response.arrayBuffer())
.then(data => JSZip.loadAsync(data))
.then(zip => {
const imageFiles = Object.keys(zip.files)
.filter(filename => /\.(jpe?g|png|gif)$/i.test(filename));
imageFiles.forEach((filename, index) => {
zip.file(filename)
.async('blob')
.then(blob => {
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
const img = document.createElement('img');
img.src = URL.createObjectURL(blob);
img.id = `image-${index}`;
document.body.appendChild(img);
});
});
})
.catch(error => console.error(error));
}