md5_file ist ein PHP Process. Den kann ich nicht optimieren. md5 ist halt bekannt dafür das es etwas Last erzeugt besonders bei großen Dateien.
Ich habe gerade ein Test gemacht mit einem eurer Images (45 MB):
Bei 100 Aufrufen benötigt mein lokaler Server (nicht besonders schnell) 11 Sekunden.
Interessant wäre zu wissen wie ihr die Dateien hochladet.
Ich würde es wohl ganz anders lösen, kommt aber darauf an ob ihr das umsetzen könnt:
1. Image-Upload Verzeichnis einrichten
2. CronJob einrichten der alle x Mins ein Script aufruft das prüft ob im Upload Verzeichnis was enthalten ist
3. Script macht meine MD5 Überprüfung.
4. MD5 Files für Dateien die hochgeladen werden sind Pflicht, d.h. es geht erst ein File Online wenn das md5 File enthalten ist und die Prüfsumme übereinstimmt
5. Wenn das Script sagt das alles ok ist, wird die Datei in das Online Verzeichnis verschoben wo es das AutoIndex Script dann auslesen und anzeigen kann (das md5 File könntet ihr dann auch weglassen)
Alternativ könnte man den Cronjob auch weglassen und ihr startet am Endes des Uploads das Script selbst, ist aber nicht so schön