En primer lugar no puedes relacionar un error de "subir archivos" con un error de MySQL:
Cita: MySQL server has gone away
¿Entiendes que eso carece totalmente de sentido?
Es como culpar al barrendero por una fuga de agua.
Es decir, aprende a aislar el problema: prepara un script que suba únicamente archivos y has pruebas para ver lo que sucede.
¿Qué sucede?