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();
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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;
            }
        }