private function _storeFile(EmbeddedAssetsModel $media, $folderId)
{
$fileLabel = substr(preg_replace('/[^a-z0-9]+/i', '-', $media->getTitle()), 0, 40);
$filePrefix = EmbeddedAssetsPlugin::getFileNamePrefix();
$fileExtension = '.json';
$fileName = $filePrefix . $fileLabel . $fileExtension;
$existingFile = craft()->assets->findFile(array('folderId' => $folderId, 'filename' => $fileName));
if ($existingFile) {
EmbeddedAssetsPlugin::log("File with name \"{$fileName}\" already exists in this location");
$fileUniqueId = DateTimeHelper::currentUTCDateTime()->format('ymd_His');
$fileName = $filePrefix . $fileLabel . '_' . $fileUniqueId . $fileExtension;
}
$fileData = $media->getAttributes(null, true);
$fileData['__embeddedasset__'] = true;
unset($fileData['id']);
unset($fileData['settings']);
$this->_addToFiles('assets-upload', $fileName, JsonHelper::encode($fileData), 'application/json');
$response = craft()->assets->uploadFile($folderId);
if ($response->isSuccess()) {
$fileId = $response->getDataItem('fileId');
$file = craft()->assets->getFileById($fileId);
return $file;
} else {
throw new \Exception($response->errorMessage);
}
}