From 1e1d7ce1cd7d3e83d8d6c6002019c42724f6ee91 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 28 Jan 2013 14:54:51 -0100 Subject: [PATCH] Fixes U4-1566 6.0.0-RC Exception when assigning HttpPostedFileBase type posted file object to a property --- .../businesslogic/datatype/FileHandlerData.cs | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs b/src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs index 067bef6626..8add1b3f73 100644 --- a/src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs +++ b/src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs @@ -18,38 +18,41 @@ namespace umbraco.cms.businesslogic.datatype _thumbnailSizes = thumbnailSizes; } - /// - /// Gets/sets the loaded Conent object which we can resolve from other classes since this class sets it's properties - /// - internal Content LoadedContentItem { get; set; } + /// + /// Gets/sets the loaded Conent object which we can resolve from other classes since this class sets it's properties + /// + internal Content LoadedContentItem { get; set; } - /// - /// Called to ensure we have a valid LoadedContentItem. - /// - /// - private void EnsureLoadedContentItem(Guid version) - { - if (LoadedContentItem == null) - { - LoadedContentItem = Content.GetContentFromVersion(Version); - } - } + /// + /// Called to ensure we have a valid LoadedContentItem. + /// + /// + private void EnsureLoadedContentItem(Guid version) + { + if (LoadedContentItem == null) + { + LoadedContentItem = Content.GetContentFromVersion(Version); + } + } public override object Value { get { return base.Value; } set { - if (value is HttpPostedFile || value is HttpPostedFileBase) + if (value is HttpPostedFile || value is HttpPostedFileBase) { - Stream fileStream = null; + var filename = value is HttpPostedFile + ? ((HttpPostedFile)value).FileName + : ((HttpPostedFileBase)value).FileName; - var file = value as HttpPostedFile; - var name = IOHelper.SafeFileName(file.FileName.Substring(file.FileName.LastIndexOf(IOHelper.DirSepChar) + 1, file.FileName.Length - file.FileName.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower()); - fileStream = file.InputStream; + var name = IOHelper.SafeFileName(filename.Substring(filename.LastIndexOf(IOHelper.DirSepChar) + 1, filename.Length - filename.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower()); - // handle upload + var fileStream = value is HttpPostedFile + ? ((HttpPostedFile)value).InputStream + : ((HttpPostedFileBase)value).InputStream; + // handle upload if (name != String.Empty) { string fileName = UmbracoSettings.UploadAllowDirectories @@ -91,8 +94,8 @@ namespace umbraco.cms.businesslogic.datatype if (uploadFieldConfigNode != null) { - EnsureLoadedContentItem(Version); - FillProperties(uploadFieldConfigNode, LoadedContentItem, um); + EnsureLoadedContentItem(Version); + FillProperties(uploadFieldConfigNode, LoadedContentItem, um); } } @@ -127,12 +130,12 @@ namespace umbraco.cms.businesslogic.datatype { // get the current document //Content legacy = Content.GetContentFromVersion(Version); - EnsureLoadedContentItem(Version); + EnsureLoadedContentItem(Version); // only add dimensions to web images UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "widthFieldAlias", String.Empty); - UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "heightFieldAlias", String.Empty); - UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "lengthFieldAlias", String.Empty); - UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "extensionFieldAlias", String.Empty); + UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "heightFieldAlias", String.Empty); + UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "lengthFieldAlias", String.Empty); + UpdateContentProperty(uploadFieldConfigNode, LoadedContentItem, "extensionFieldAlias", String.Empty); } } }