You can upload illustrations in groups of 20 per post (more over tabs) so minus uploading time it shouldn't take hours it should take minutes.
One of the issues is that people lose track of where they are in their upload folder, hence duplicate file clicks. I took the liberty of changing the "validateFile()" on your upload page to avoid this, also checking for malicious "image.php.jpg" uploads on the client side.
function validateFile ( e, IDf, IDe, msgnojpg, msgthere ) {
//.. Count file duplicates ...................
var there = 0;
var elLength = document.uploadForm.elements.length;
for (var i = 0; i < elLength; i++) {
if (uploadForm.elements[i].type == 'file') {
var value = uploadForm.elements[i].value;
if ((value.length > 0) && (value == e.value)) there++;
}; };
//.. Get extension and period count ...........
var count = 0; // avoid "image.php.jpg" or "image.jpg.php"
for (var i = 0; i < e.value.length; i++) if (e.value.charAt(i) == '.') count++;
$ext = e.value.split('.').pop().toLowerCase();
//.. Diagnose .................................
if ((($ext == "jpg") || ($ext == "jpeg")) && (count == 1) && (there < 2)) {
document.getElementById(IDf).style.backgroundColor = '#ffffff';
document.getElementById(IDf).style.color = '#000000';
document.getElementById(IDe).innerHTML = " ";
} else {
e.value = '';
document.getElementById(IDf).style.backgroundColor = '#dedede';
document.getElementById(IDf).style.color = '#ababab';
if (there > 1) document.getElementById(IDe).innerHTML = msgthere
else document.getElementById(IDe).innerHTML = msgnojpg;
}; };