public void InstallContent(Module module, string configInfo) { if (string.IsNullOrEmpty(configInfo)) { return; } string basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/"; if (!Directory.Exists(HostingEnvironment.MapPath(basePath))) { Directory.CreateDirectory(HostingEnvironment.MapPath(basePath)); } basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/"; if (!Directory.Exists(HostingEnvironment.MapPath(basePath))) { Directory.CreateDirectory(HostingEnvironment.MapPath(basePath)); } basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/" + module.ModuleId.ToInvariantString() + "/"; if (!Directory.Exists(HostingEnvironment.MapPath(basePath))) { Directory.CreateDirectory(HostingEnvironment.MapPath(basePath)); } IOHelper.CopyFolderContents(HostingEnvironment.MapPath(configInfo), HostingEnvironment.MapPath(basePath)); basePath = "~/Data/Sites/" + module.SiteId.ToInvariantString() + "/media/GalleryImages/" + module.ModuleId.ToInvariantString() + "/FullSizeImages/"; string[] files = Directory.GetFiles(HostingEnvironment.MapPath(basePath)); foreach (string file in files) { GalleryImage img = new GalleryImage(); img.ModuleGuid = module.ModuleGuid; img.ModuleId = module.ModuleId; img.ImageFile = Path.GetFileName(file); img.ThumbnailFile = img.ImageFile; img.WebImageFile = img.ImageFile; img.Save(); } }
private static void SetExifData(GalleryImage galleryImage, Bitmap originalImage, string filePath) { XmlDocument metaData = new XmlDocument(); if (metaData.DocumentElement == null) { metaData.AppendChild(metaData.CreateElement("MetaData")); } mojoPortal.Web.ImageHelper.SetMetadata("ImageFile", galleryImage.ImageFile, metaData); mojoPortal.Web.ImageHelper.SetMetadata("WebImageFile", galleryImage.WebImageFile, metaData); mojoPortal.Web.ImageHelper.SetMetadata("ThumbnailFile", galleryImage.ThumbnailFile, metaData); mojoPortal.Web.ImageHelper.SetMetadata("Caption", galleryImage.Caption, metaData); mojoPortal.Web.ImageHelper.SetMetadata("Description", galleryImage.Description, metaData); mojoPortal.Web.ImageHelper.SetMetadata("OriginalFilename", filePath, metaData); mojoPortal.Web.ImageHelper.SetMetadata("WebImageWidth", galleryImage.WebImageWidth.ToInvariantString(), metaData); mojoPortal.Web.ImageHelper.SetMetadata("WebImageHeight", galleryImage.WebImageHeight.ToInvariantString(), metaData); mojoPortal.Web.ImageHelper.SetMetadata("ThumbNailWidth", galleryImage.ThumbNailWidth.ToInvariantString(), metaData); mojoPortal.Web.ImageHelper.SetMetadata("ThumbNailHeight", galleryImage.ThumbNailHeight.ToInvariantString(), metaData); try { mojoPortal.Web.ImageHelper.SetExifInformation(originalImage, metaData); } catch(Exception ex) { log.Error(ex); } galleryImage.MetaDataXml = metaData.OuterXml; //if (mojoPortal.Web.ImageHelper.GetMetadata("GPSLatitude", metaData).Length > 0) //{ //} //if (mojoPortal.Web.ImageHelper.GetMetadata("GPSLongitude", metaData).Length > 0) //{ //} //if (mojoPortal.Web.ImageHelper.GetMetadata("GPSAltitude", metaData).Length > 0) //{ //} galleryImage.Save(); }
void btnUpload_Click(object sender, EventArgs e) { // as long as javascript is available this code should never execute // because the standard file input ir replaced by javascript and the file upload happens // at the service url /ImageGallery/upload.ashx // this is fallback implementation Module module = GetModule(moduleId, Gallery.FeatureGuid); if (module == null) { SiteUtils.RedirectToAccessDeniedPage(this); return; } SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); try { if (uploader.HasFile) { string ext = Path.GetExtension(uploader.FileName); if (SiteUtils.IsAllowedUploadBrowseFile(ext, ".jpg|.gif|.png|.jpeg")) { GalleryImage galleryImage = new GalleryImage(this.moduleId); galleryImage.ModuleGuid = module.ModuleGuid; galleryImage.WebImageHeight = config.WebSizeHeight; galleryImage.WebImageWidth = config.WebSizeWidth; galleryImage.ThumbNailHeight = config.ThumbnailHeight; galleryImage.ThumbNailWidth = config.ThumbnailWidth; galleryImage.UploadUser = Context.User.Identity.Name; if (siteUser != null) galleryImage.UserGuid = siteUser.UserGuid; //string newFileName = Path.GetFileName(file.FileName).ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newFileName = Path.GetFileName(uploader.FileName).ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); if (galleryImage.ImageFile == newFileName) { // an existing gallery image delete the old one fileSystem.DeleteFile(newImagePath); } else { // this is a new galleryImage instance, make sure we don't use the same file name as any other instance int i = 1; while (fileSystem.FileExists(VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName))) { newFileName = i.ToInvariantString() + newFileName; i += 1; } } newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); using (Stream s = uploader.FileContent) { //fileSystem.SaveFile(newImagePath, s, uploader.FileContentType, true); fileSystem.SaveFile(newImagePath, s, IOHelper.GetMimeType(Path.GetExtension(ext).ToLower()), true); } galleryImage.ImageFile = newFileName; galleryImage.WebImageFile = newFileName; galleryImage.ThumbnailFile = newFileName; galleryImage.Save(); GalleryHelper.ProcessImage(galleryImage, fileSystem, imageFolderPath, uploader.FileName, config.ResizeBackgroundColor); } } WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl()); } catch (UnauthorizedAccessException ex) { lblError.Text = ex.Message; } catch (ArgumentException ex) { lblError.Text = ex.Message; } }