1. Es pésima idea guardar información binaria que no sea sensible (como una imagen, audio, etc.) en la base de datos, es en definitiva le peor de las practicas al respecto
2. Tomando en cuenta el punto (1) sólo debes almacenar la ruta del archivo en la BD, y el archivo debe guardarse a disco tal cual
3. Tu código está bastante mal, insertas a la base de datos antes de mover el archivo, sin control, etc.
Creo que primero deberías organizar tu código.