diff --git a/src/Umbraco.Core/StringExtensions.cs b/src/Umbraco.Core/StringExtensions.cs
index 835b333813..c6b4da96eb 100644
--- a/src/Umbraco.Core/StringExtensions.cs
+++ b/src/Umbraco.Core/StringExtensions.cs
@@ -1574,29 +1574,29 @@ namespace Umbraco.Core
guid[left] = guid[right];
guid[right] = temp;
}
-
-
+
///
/// Converts a file name to a friendly name for a content item
///
///
///
- public static string friendlyNameFromFilename(this string fileName)
+ public static string ToFriendlyName(this string fileName)
{
// strip the file extension
- fileName = StripFileExtension(fileName);
+ fileName = fileName.StripFileExtension();
// underscores and dashes to spaces
- fileName = ReplaceMany(fileName, new char[] { '_', '-' }, ' ');
+ fileName = fileName.ReplaceMany(new[] { '_', '-' }, ' ');
// any other conversions ?
// Pascalcase (to be done last)
fileName = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(fileName);
+ // Replace multiple consecutive spaces with a single space
+ fileName = string.Join(" ", fileName.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
return fileName;
}
-
}
}
diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs
index eb276664e6..59693e94a2 100644
--- a/src/Umbraco.Web/Editors/MediaController.cs
+++ b/src/Umbraco.Web/Editors/MediaController.cs
@@ -717,7 +717,7 @@ namespace Umbraco.Web.Editors
mediaType = result.FormData["contentTypeAlias"];
}
- var mediaItemName = fileName.friendlyNameFromFilename();
+ var mediaItemName = fileName.ToFriendlyName();
var f = mediaService.CreateMedia(mediaItemName, parentId, mediaType, Security.CurrentUser.Id);