Example #1
0
        private bool FilePreviewable(FileInfo fileInfo)
        {
            if (string.IsNullOrEmpty(fileInfo.Extension))
            {
                return(false);
            }

            string mimeType = MimeTypeInfo.GetCanonicalFromExtension(fileInfo.Extension);

            if (string.IsNullOrEmpty(mimeType))
            {
                return(false);
            }

            return(MimeTypeInfo.IsBrowserPreviewableFile(mimeType) ||
                   (MimeTypeInfo.IsTextFile(mimeType) && fileInfo.Length < 1 << 20 /* 1 MB */));
        }
        private bool FilePreviewable(FileInfo fileInfo)
        {
            if (string.IsNullOrEmpty(fileInfo.Extension))
            {
                return(false);
            }

            string mimeType = MimeTypeInfo.GetCanonicalFromExtension(fileInfo.Extension);

            if (string.IsNullOrEmpty(mimeType))
            {
                return(false);
            }

            return(MimeTypeInfo.IsBrowserPreviewableFile(mimeType) ||
                   (MimeTypeInfo.IsTextFile(mimeType) && fileInfo.Length < 1 << 20 /* 1 MB */) ||
                   fileInfo.Extension.Equals(".dll", StringComparison.OrdinalIgnoreCase));
        }
Example #3
0
        public BrowserViewSettings TryGetBrowserViewSettings(EntityToken entityToken, bool showPublishedView)
        {
            if (!(entityToken is DataEntityToken dataEntityToken) || dataEntityToken.InterfaceType != typeof(IMediaFile))
            {
                return(null);
            }

            var file = (IMediaFile)dataEntityToken.Data;

            if (file == null || !MimeTypeInfo.IsBrowserPreviewableFile(file.MimeType))
            {
                return(null);
            }

            string url        = MediaUrls.BuildUrl(file);
            var    urlBuilder = new UrlBuilder(url)
            {
                ["download"] = "false"
            };

            return(new BrowserViewSettings {
                Url = urlBuilder.ToString(), ToolingOn = false
            });
        }