Revisa que contiene el array $_FILES ...
Código PHP:
<?
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>
Podría ser que:
1) No esté subiendo el archivo (y en consecuencia $_FILES ... ['tmp_name'] no contenga nada.
2) Que no tengas permisos para abrir un archivo desde la ruta temporal donde PHP sube los archivos (indicada en php.ini: upload_tmp_dir .. suele ser "\tmp" en Linux .. y si es windows debe ser una ruta válida de Windows: c:\nose .. o donde sea).
Por si tienes más problemas .. revisa este mensaje:
http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/
(tienes muchos comentarios de usuarios que usan código similar).
Un saludo,