Upload file implementation