public/Set-RecipeImage.ps1
|
function Set-RecipeImage { [CmdletBinding()] param( [Parameter(Mandatory)] [int]$RecipeId, [Parameter(Mandatory)] [byte[]]$Bytes, [string]$OriginalFileName ) # Determine extension from original name (fallback .jpg) $ext = ".jpg" if ($OriginalFileName) { $maybe = [System.IO.Path]::GetExtension($OriginalFileName) if ($maybe -and $maybe.Length -le 5) { $ext = $maybe.ToLower() } } $fileName = "Recipe_{0}{1}" -f $RecipeId, $ext $path = Get-RecipeImageFilePath -RecipeId $RecipeId -Extension $ext # Write to disk [System.IO.File]::WriteAllBytes($path, $Bytes) $fileSafe = $fileName.Replace("'", "''") # Update metadata in DB Invoke-RecipeDbQuery -Query @" UPDATE Recipes SET ImageFileName = '$fileSafe', ImageUpdatedAt = datetime('now'), UpdatedAt = datetime('now') WHERE RecipeId = $RecipeId; "@ | Out-Null } |