コード例 #1
0
        public MediaPM SaveMedia(Stream inputStream, int contentLength, string fileName, string contentType, int userId)
        {
            var    extention          = Path.GetExtension(fileName).ToLower();
            var    mediaType          = GetFileMediaType(extention);
            var    userMediaDirectory = AppConfigurationManager.GetUserMediaDirectory();
            var    newFileName        = Guid.NewGuid().ToString();
            var    newFileNameWithExt = $"{newFileName}{extention}";
            var    filePath           = $"{userMediaDirectory}\\{newFileName}{extention}";
            string thumbnailPath      = null;

            try {
                using (FileStream fileStream = new FileStream(filePath, FileMode.CreateNew)) {
                    inputStream.CopyTo(fileStream);
                }

                if (mediaType == MediaType.Image)
                {
                    thumbnailPath = $"{userMediaDirectory}\\{newFileName}-thumb{extention}";
                    var task = CreateThumbnailImageAsync(inputStream, thumbnailPath);
                }

                var media = MediaBiz.AddMedia(newFileNameWithExt, contentLength, mediaType, userId);
                UnitOfWork.SaveChanges();
                return(media.GetPresentationModel());
            }
            catch {
                File.Delete(filePath);
                if (thumbnailPath != null)
                {
                    File.Delete(thumbnailPath);
                }
                throw;
            }
        }
コード例 #2
0
        public void CreateThumbnails()
        {
            ZigmaWebContext c   = new ZigmaWebContext();
            var             dir = AppConfigurationManager.GetUserMediaDirectory();

            c.Medias.ToList().ForEach(m => {
                var path = $"z:\\public_html\\usermedia\\{m.FileName}";
            });
        }