public function putFile(string $sourcefile)
    {
        if (file_exists($sourcefile)) {
            if (($nb_icontact_prospect = $this->getIContactProspect()) instanceof CNabuIContactProspect &&
                ($nb_icontact = $nb_icontact_prospect->getIContact()) instanceof CNabuIContact
            ) {
                $this->grantHash();
                $nb_icontact->grantStorageFolder();
                $base_path = $nb_icontact->getBasePath();
                move_uploaded_file($sourcefile, $base_path . DIRECTORY_SEPARATOR . $this->getFilename());
            } else {
                throw new ENabuIContactException(ENabuIContactException::ERROR_ICONTACT_NOT_FOUND);
            }
        } else {
            throw new ENabuCoreException(ENabuCoreException::ERROR_FILE_NOT_FOUND, array($sourcefile));
        }
    }