public function storeFieldData(VersionInfo $versionInfo, Field $field, array $context)
{
if ($field->value->externalData === null) {
$this->deleteFieldData($versionInfo, [$field->id], $context);
return false;
}
if (isset($field->value->externalData['inputUri'])) {
$field->value->externalData['mimeType'] = $this->mimeTypeDetector->getFromPath($field->value->externalData['inputUri']);
$createStruct = $this->IOService->newBinaryCreateStructFromLocalFile($field->value->externalData['inputUri']);
$createStruct->id = $this->pathGenerator->getStoragePathForField($field, $versionInfo);
$binaryFile = $this->IOService->createBinaryFile($createStruct);
$field->value->externalData['id'] = $binaryFile->id;
$field->value->externalData['mimeType'] = $createStruct->mimeType;
$field->value->externalData['uri'] = isset($this->downloadUrlGenerator) ? $this->downloadUrlGenerator->getStoragePathForField($field, $versionInfo) : $binaryFile->uri;
}
$this->removeOldFile($field->id, $versionInfo->versionNo, $context);
$this->getGateway($context)->storeFileReference($versionInfo, $field);
}