public void Save(MediaFile mediaFile, MediaStorageItem item)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            // TODO: (?) if the new file extension differs from the old one then the old file never gets deleted

            var filePath = GetPath(mediaFile);

            if (item != null)
            {
                // Create folder if it does not exist yet
                var dir = Path.GetDirectoryName(filePath);
                if (!_fileSystem.FolderExists(dir))
                {
                    _fileSystem.CreateFolder(dir);
                }

                using (item)
                {
                    using var outStream = _fileSystem.GetFile(filePath).OpenWrite();
                    item.SaveTo(outStream, mediaFile);
                }
            }
            else if (_fileSystem.FileExists(filePath))
            {
                // Remove media storage if any
                _fileSystem.DeleteFile(filePath);
            }
        }
        private string GetUniqueFileName(string folder, string fileName)
        {
            var    result    = fileName;
            var    copy      = T("Admin.Common.Copy");
            string name      = null;
            string extension = null;

            for (var i = 1; i < 999999; ++i)
            {
                var path = _fileSystem.Combine(folder, result);

                if (!_fileSystem.FileExists(path))
                {
                    return(result);
                }

                if (name == null || extension == null)
                {
                    var file = _fileSystem.GetFile(path);
                    extension = file.FileType;
                    // this assumes that a storage file name always ends with its file type
                    name = file.Name.EmptyNull().Substring(0, file.Name.EmptyNull().Length - extension.Length);
                }

                result = "{0} - {1} {2}{3}".FormatInvariant(name, copy, i, extension);
            }

            return(result);
        }
Пример #3
0
        public void Save(MediaItem media, byte[] data)
        {
            Guard.NotNull(media, nameof(media));

            // TODO: (?) if the new file extension differs from the old one then the old file never gets deleted

            var filePath = GetPicturePath(media);

            if (data != null && data.LongLength != 0)
            {
                _fileSystem.WriteAllBytes(filePath, data);
            }
            else if (_fileSystem.FileExists(filePath))
            {
                _fileSystem.DeleteFile(filePath);
            }
        }
        public void Save(MediaFile mediaFile, byte[] data)
        {
            Guard.NotNull(mediaFile, nameof(mediaFile));

            // TODO: (?) if the new file extension differs from the old one then the old file never gets deleted

            var filePath = GetPath(mediaFile);

            if (data != null && data.LongLength > 0)
            {
                _fileSystem.WriteAllBytes(filePath, data);
            }
            else if (_fileSystem.FileExists(filePath))
            {
                // Remove media storage if any
                _fileSystem.DeleteFile(filePath);
            }
        }
Пример #5
0
        public virtual CachedImageResult GetCachedImage(int?pictureId, string seoFileName, string extension, object settings = null)
        {
            var imagePath = this.GetCachedImagePath(pictureId, seoFileName, extension, ImageResizerUtil.CreateResizeSettings(settings));

            var result = new CachedImageResult
            {
                Path      = imagePath, //"Media/Thumbs/" + imagePath,
                FileName  = System.IO.Path.GetFileName(imagePath),
                Extension = GetCleanFileExtension(imagePath),
                Exists    = _fileSystem.FileExists(BuildPath(imagePath))
            };

            return(result);
        }
        private void DownloadFile(string path)
        {
            path = GetRelativePath(path);
            if (!_fileSystem.FileExists(path))
            {
                return;
            }

            var len    = 0;
            var buffer = new byte[BUFFER_SIZE];
            var file   = _fileSystem.GetFile(path);

            try
            {
                using (var stream = file.OpenRead())
                {
                    Response.Clear();
                    Response.Headers.Add("Content-Disposition", "attachment; filename=\"" + file.Name + "\"");
                    Response.ContentType = MimeTypes.MapNameToMimeType(file.Name);

                    while (Response.IsClientConnected && (len = stream.Read(buffer, 0, BUFFER_SIZE)) > 0)
                    {
                        Response.OutputStream.Write(buffer, 0, len);
                        Response.Flush();

                        Array.Clear(buffer, 0, BUFFER_SIZE);
                    }

                    Response.End();
                }
            }
            catch (IOException)
            {
                throw new Exception(T("Admin.Common.FileInUse"));
            }
        }