File upload implementation