kerberoz , si se puede hacer las dos cosas en el formulario , controlar el tipo de archivo y el tamaño , pero lo mejor que tenes que hacer es validarlo con el php y si no cumple simplemente no subas el archivo y explicale al usuario el error, si fue de tipo de tamaño o si fue de extension del archivo, te digo esto porque el usuario facilmente puede alterar el codigo javascript en su maquina (localmente) guardando una copia del formulario y enviarte datos incorrectos , como quien dice si lo haces por javascript siempre lo tenes que hacer por php, para que hacer el doble trabajo ? lo mas seguro es que lo valides con el php.
Pero por si igual lo queres hacer , pues segui los consejos de mxgxw para validar la extension del archivo, y para validar el tamaño en el formulario se ocupa un input type como este, ojo que tiene que ir antes del input type del archivo (file)
<input name="MAX_FILE_SIZE" value="6246976" type="hidden">
ese por ejemplo te permite archivos de mas o menos 6mb
Se puede configurar PHP (lado servidor) para que limitar uso de recursos y de tiempo:
; Tiempo de ejecución máximo en segundos para
; cada script de PHP:
max_execution_time=60
;Tiempo máximo en segundos que cada script
;de PHP puede emplear interpretando datos
;de petición:
max_input_time=60
;Cantidad máxima de memoria en megabytes
;que un script de PHP puede consumir:
memory_limit=8M
Se encuentra usualmente en PHP.ini en el directorio de instalación de PHP.
estas variables no tienen nada que ver con el envio de archivo , las que lo controlan es el post limit algo asi y el max file size .