handle direct file upload