mir sind sofort 3 sachen aufgefallen:
- du setzt POST_MAX erst nach dem new CGI. an der stelle duerfte das zu spaet sein, da das CGI-objekt dann schon erstellt wurde.
- mkdir() erstellt ein verzeichnis, wenn es noch nicht vorhanden ist, ansonsten tut es nichts und beschwert sich auch nicht. deine logik ist also genau verkehrt herum. du fragst bei dem einen verzeichnis vorher ab und machst dann ein mkdir(). dort koenntest du die abfrage auch sein lassen. beim zweiten schreibst du als kommentar direkt vor das mkdir, dass es das verzeichnis noch nicht geben darf, aber mkdir() stoert das wie gesagt nicht. es wuerde also weiterlaufen, auch wenn das verzeichnis schon existiert. machev hier zumindest eine abfrage auf den rueckgabewert, der dir sagt, ob mkdir ein verzeichnis erstellt hat oder nicht.
- du benutzt einen filehandle namens UPLOADFILE und machst dann aber binmode uploadfile. das sollte zumindest eine warnung ausgeben. das ist nicht derselbe filehandle.