/// <summary> /// Fixed: /// </summary> public static string UploadImage(IContext context, long id) { var controlId = context.Forms.ControlId(); var ss = new ItemModel( context: context, referenceId: id).GetSite( context: context, initSiteSettings: true) .SiteSettings; var invalid = BinaryValidators.OnUploadingImage(context: context); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( context: context, data: context.ContractSettings.StorageSize.ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson(context: context)); } var file = context.PostedFiles.FirstOrDefault(); var bin = file.Byte(); if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid)); } else { Rds.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(file.Guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin) .FileName(file.FileName) .Extension(file.Extension) .Size(file.Size) .ContentType(file.ContentType))); } var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText( "#" + context.Forms.ControlId(), "![image]({0})".Params(Locations.ShowFile( context: context, guid: file.Guid))) .ToJson()); }
/// <summary> /// Fixed: /// </summary> public static string UploadImage( Context context, System.Web.HttpPostedFileBase[] files, long id) { var controlId = Forms.ControlId(); var ss = new ItemModel( context: context, referenceId: id).GetSite( context: context, initSiteSettings: true) .SiteSettings; var invalid = BinaryValidators.OnUploadingImage( context: context, files: files); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( Contract.TenantStorageSize(context: context).ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson()); } var guid = Strings.NewGuid(); var file = files[0]; var size = file.ContentLength; var bin = file.Byte(); Rds.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .FileName(file.FileName) .Extension(file.Extension()) .Size(size) .ContentType(file.ContentType))); if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine(Directories.BinaryStorage(), "Images", guid)); } var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText("#" + Forms.ControlId(), $"![image]({Locations.ShowFile(guid)})") .ToJson()); }
/// <summary> /// Fixed: /// </summary> public static string UploadImage(System.Web.HttpPostedFileBase[] files, long id) { var controlId = Forms.ControlId(); var ss = new ItemModel(id).GetSite(initSiteSettings: true).SiteSettings; var invalid = BinaryValidators.OnUploadingImage(files); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( Contract.TenantStorageSize().ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson()); } var guid = Strings.NewGuid(); var file = files[0]; Rds.ExecuteNonQuery(statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(Sessions.TenantId()) .ReferenceId(id) .Guid(guid) .BinaryType("Image") .Title(file.FileName) .Bin(file.Byte()) .FileName(file.FileName) .Extension(file.Extension()) .Size(file.ContentLength) .ContentType(file.ContentType))); var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText("#" + Forms.ControlId(), $"![image]({Locations.ShowFile(guid)})") .ToJson()); }
/// <summary> /// Fixed: /// </summary> public static string UploadImage(Context context, long id) { var invalid = BinaryValidators.OnUploadingImage(context: context); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( context: context, data: context.ContractSettings.StorageSize.ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson(context: context)); } var file = context.PostedFiles.FirstOrDefault(); var bin = file.Byte(); var columnName = context.Forms.Data("ControlId"); if (columnName.Contains("_")) { columnName = columnName.Substring(columnName.IndexOf("_") + 1); } if (columnName.StartsWith("Comment")) { columnName = "Comments"; } var ss = new ItemModel( context: context, referenceId: id) .GetSite( context: context, initSiteSettings: true) .SiteSettings; var thumbnailLimitSize = ss.GetColumn( context: context, columnName: columnName)?.ThumbnailLimitSize ?? Parameters.BinaryStorage.ThumbnailLimitSize; var imageData = new Libraries.Images.ImageData( bin, ss.ReferenceId, Libraries.Images.ImageData.Types.SiteImage); if (Parameters.BinaryStorage.ImageLimitSize?.ToInt() > 0) { bin = imageData.ReSizeBytes(Parameters.BinaryStorage.ImageLimitSize); } var thumbnail = thumbnailLimitSize > 0 ? imageData.ReSizeBytes(thumbnailLimitSize) : null; if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid)); if (thumbnailLimitSize > 0) { thumbnail.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid + "_thumbnail")); } } Repository.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(file.Guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .Thumbnail(thumbnail, _using: thumbnail != null) .FileName(file.FileName) .Extension(file.Extension) .Size(file.Size) .ContentType(file.ContentType))); return(new ResponseCollection() .InsertText( "#" + context.Forms.ControlId(), "![image]({0})".Params(Locations.ShowFile( context: context, guid: file.Guid))) .ToJson()); }