Prova a fare il catching dell'errore di caricamento PRIMA dell'inserimento nel DB.
Codice PHP:
echo $_FILES['file']['error'];
exit; 
queste due righe di codice ti dovrebbero restituire un numero diverso da 0 (che indica nessun errore).
Se fai una ricerchina con google trovi tutti i numeri di errore e la loro corrispondenza.
Questo se il problema è nella grandezza del file da caricare.

Se il problema è di timeout dello script, puoi usare un work-around andando ad agire con ini_set() sul tempo massimo di timeout dello script.
Sono convinto infatti che ci siano dei limiti impostati dal PHP.INI sulla grandezza dei file da caricare.

Occhio ad una cosa, però: se un limite è stato imposto un motivo ci sarà. Fosse non altro nelle prestazioni del server.
Quindi valuta bene se sia il caso di andare a modificre determinati parametri o se valga la pena limitare i propri utenti ad un comportamento più "responsabile" (per capirci: è inutile caricare via internet una foto da 3 MB, perché si consuma inutilmente banda ogni volta che viene visualizzata).