Signori, ho risolto..
ho fatto un foreach sull'array $_FILES in modo da vedere i valori che mi restituiva un upload andato a buon fine e uno errato..

risultato?
i campi "tmp_name" e "type" erano vuoti, e il campo "error" era uguale a 2

http://php.net/manual/en/features.fi...oad.errors.php

Da qui ho capito che la cosa dipendeva dalla dimensione del file.. che a quanto pare ha importanza anche se non viene direttamente specificata nel codice php (infatti ho variato un campo hidden presente nel form di upload)

Morale della favola: anche se l'errore viene "collegato" alla mancanza del "type", in realtà il problema è altrove.. fortuna che ho risolto in fretta!