Пример #1
0
        /// <summary>
        /// Gets details of an uploaded file.
        /// </summary>
        /// <param name="file">Uploaded file contents.</param>
        /// <param name="filePath">Path to store the file on the disk.</param>
        /// <returns>The file details.</returns>
        protected CMS.IO.FileInfo GetFileInfo(HttpPostedFileWrapper file, string filePath)
        {
            byte[] data = new byte[file.ContentLength];
            file.InputStream.Seek(0, SeekOrigin.Begin);
            file.InputStream.Read(data, 0, file.ContentLength);
            CMS.IO.File.WriteAllBytes(filePath, data);
            CMS.IO.FileInfo fileInfo = CMS.IO.FileInfo.New(filePath);

            return(fileInfo);
        }
Пример #2
0
        public ActionResult Upload(string filePathId, int mediaLibraryId)
        {
            if (Request.Files[0] is HttpPostedFileWrapper file && file != null)
            {
                string directoryPath = null;

                try
                {
                    directoryPath = FileManagementHelper.EnsureUploadDirectory(TempPath);
                }
                catch (Exception ex)
                {
                    return(ErrorHelper.HandleException(nameof(MediaLibraryUploaderController), nameof(Upload), ex));
                }

                if (!string.IsNullOrEmpty(directoryPath))
                {
                    string imagePath = null;

                    try
                    {
                        imagePath = FileManagementHelper.GetTempFilePath(directoryPath, file.FileName);
                    }
                    catch (Exception ex)
                    {
                        return(ErrorHelper.HandleException(nameof(MediaLibraryUploaderController), nameof(Upload), ex));
                    }

                    if (!string.IsNullOrEmpty(imagePath))
                    {
                        FileInfo fileInfo = null;

                        try
                        {
                            fileInfo = GetFileInfo(file, imagePath);
                        }
                        catch (Exception ex)
                        {
                            return(ErrorHelper.HandleException(
                                       nameof(MediaLibraryUploaderController),
                                       nameof(Upload),
                                       ex,
                                       ErrorHelper.UnprocessableStatusCode));
                        }

                        if (fileInfo != null)
                        {
                            return(CreateMediaFile(filePathId, mediaLibraryId, imagePath, fileInfo));
                        }
                    }
                }
            }

            return(new HttpStatusCodeResult(ErrorHelper.UnprocessableStatusCode));
        }
Пример #3
0
        protected MediaFileInfo CreateMediafileInfo(int mediaLibraryId, FileInfo fileInfo)
        {
            var mediaFile = new MediaFileInfo(fileInfo?.FullName, mediaLibraryId)
            {
                FileName      = fileInfo.Name.Substring(0, fileInfo.Name.Length - fileInfo.Extension.Length),
                FileExtension = fileInfo.Extension,
                FileMimeType  = MimeTypeHelper.GetMimetype(fileInfo.Extension),
                FileSiteID    = SiteContext.CurrentSiteID,
                FileLibraryID = mediaLibraryId,
                FileSize      = fileInfo.Length
            };

            MediaFileInfoProvider.SetMediaFileInfo(mediaFile);
            return(mediaFile);
        }
Пример #4
0
        /// <summary>
        /// Insert image to Media Library
        /// </summary>
        /// <param name="productImage"></param>
        /// <returns></returns>
        public static string UploadImageToMeadiaLibrary(FileUpload productImage, string folderName)
        {
            string imagePath = string.Empty;

            try
            {
                string folderPath = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/");
                if (!Directory.Exists(folderPath))
                {
                    Directory.CreateDirectory(folderPath);
                }
                string filePath = Path.GetFileName(productImage.PostedFile.FileName);
                productImage.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + filePath));
                MediaLibraryInfo library = MediaLibraryInfoProvider.GetMediaLibraryInfo(!string.IsNullOrEmpty(folderName) ? folderName.Replace(" ", "") : "CampaignProducts", SiteContext.CurrentSiteName);
                if (library == null)
                {
                    CreateMeadiaLiabrary(folderName);
                    library = MediaLibraryInfoProvider.GetMediaLibraryInfo(!string.IsNullOrEmpty(folderName) ? folderName.Replace(" ", "") : "CampaignProducts", SiteContext.CurrentSiteName);
                }
                filePath = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + filePath);
                CMS.IO.FileInfo file = CMS.IO.FileInfo.New(filePath);
                if (file != null)
                {
                    MediaFileInfo mediaFile = new MediaFileInfo(filePath, library.LibraryID);
                    mediaFile.FileName      = Path.GetFileNameWithoutExtension(productImage.PostedFile.FileName);
                    mediaFile.FileTitle     = Path.GetFileNameWithoutExtension(productImage.PostedFile.FileName);
                    mediaFile.FilePath      = "Images/";
                    mediaFile.FileExtension = file.Extension;
                    mediaFile.FileMimeType  = MimeTypeHelper.GetMimetype(file.Extension);
                    mediaFile.FileSiteID    = SiteContext.CurrentSiteID;
                    mediaFile.FileLibraryID = library.LibraryID;
                    mediaFile.FileSize      = file.Length;
                    MediaFileInfoProvider.SetMediaFileInfo(mediaFile);
                    File.Delete(filePath);
                    imagePath = MediaFileURLProvider.GetMediaFileUrl(mediaFile.FileGUID, mediaFile.FileName);
                }
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("UploadImage", "UploadImageToMeadiaLibrary", ex, SiteContext.CurrentSite.SiteID, ex.Message);
            }
            return(imagePath);
        }
Пример #5
0
        /// <inheritdoc/>
        public IMediaFile CreateMediaFile(int librarySiteID, string libraryName, string localFilePath, string fileName, string fileTitle, string fileDesc, string folder)
        {
            // Gets the media library
            string siteName        = SiteInfoProvider.GetSiteName(librarySiteID);
            var    existingLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo(libraryName, siteName);

            if (existingLibrary != null)
            {
                // Prepares a CMS.IO.FileInfo object representing the local file
                CMS.IO.FileInfo file = CMS.IO.FileInfo.New(localFilePath);
                if (file != null)
                {
                    // Creates a new media library file object
                    MediaFileInfo mediaFile = new MediaFileInfo(localFilePath, existingLibrary.LibraryID)
                    {
                        // Sets the media library file properties
                        FileName        = fileName,
                        FileTitle       = fileTitle,
                        FileDescription = fileDesc,
                        FilePath        = $"{folder}/{fileName}", // Sets the path within the media library's folder structure
                        FileExtension   = file.Extension,
                        FileMimeType    = MimeTypeHelper.GetMimetype(file.Extension),
                        FileSiteID      = librarySiteID,
                        FileLibraryID   = existingLibrary.LibraryID,
                        FileSize        = file.Length,
                    };

                    // Saves the media library file
                    MediaFileInfoProvider.SetMediaFileInfo(mediaFile);

                    return(mediaFile.ActLike <IMediaFile>());
                }
            }

            return(null);
        }
Пример #6
0
        protected ActionResult CreateMediaFile(string filePathId, int mediaLibraryId, string imagePath, FileInfo fileInfo)
        {
            MediaFileInfo mediaFileInfo = null;

            try
            {
                mediaFileInfo = CreateMediafileInfo(mediaLibraryId, fileInfo);
            }
            catch (Exception ex)
            {
                return(ErrorHelper.HandleException(
                           nameof(MediaLibraryUploaderController),
                           nameof(CreateMediaFile),
                           ex,
                           ErrorHelper.UnprocessableStatusCode));
            }

            try
            {
                CMS.IO.File.Delete(imagePath);
            }
            catch (Exception ex)
            {
                ErrorHelper.LogException(nameof(Upload), "", ex);
            }

            return(Json(new
            {
                filePathId,
                fileGuid = mediaFileInfo.FileGUID.ToString()
            }));
        }