Exemple #1
0
        public void MimeTypeReverseMappingUnavailable()
        {
            var original  = "image/foobar";
            var extension = MimeTypeNames.GetExtension(original);

            Assert.AreEqual("", extension);
        }
Exemple #2
0
        /// <summary>
        /// Convert an image in a data URI string
        /// </summary>
        /// <param name="path">The path is used just to determine the mime type</param>
        /// <param name="bytes">The actual binary content of the image</param>
        internal static string ConvertImageToDataUri(string path, byte[] bytes)
        {
            int    dotIndex  = path.LastIndexOf('.');
            string extension = dotIndex > 0 ? path.Substring(dotIndex) : string.Empty;
            string mime      = MimeTypeNames.FromExtension(extension);

            return($"data:{mime};base64,{Convert.ToBase64String(bytes)}");
        }
        /// <summary>
        /// Gets the registered engine for the provided mime-type.
        /// </summary>
        /// <param name="mimeType">The mime-type.</param>
        /// <returns>The contained engine.</returns>
        public virtual IScriptEngine GetEngine(String mimeType)
        {
            if (MimeTypeNames.IsJavaScript(mimeType))
            {
                return(_engine);
            }

            return(null);
        }
        /// <summary>
        /// Gets the content-type from the response's headers. The default type
        /// is derived from the file extension of the path, if any.
        /// </summary>
        /// <param name="response">The response to examine.</param>
        /// <returns>The provided or default content-type.</returns>
        public static MimeType GetContentType(this IResponse response)
        {
            var fileName    = response.Address.Path;
            var index       = fileName.LastIndexOf('.');
            var extension   = index >= 0 ? fileName.Substring(index) : ".a";
            var defaultType = MimeTypeNames.FromExtension(extension);

            return(response.GetContentType(defaultType));
        }
 public void CommonMimeTypesAreCorrectlyDefined()
 {
     Assert.AreEqual("image/apng", MimeTypeNames.FromExtension(".apng"));
     Assert.AreEqual("image/avif", MimeTypeNames.FromExtension(".avif"));
     Assert.AreEqual("image/gif", MimeTypeNames.FromExtension(".gif"));
     Assert.AreEqual("image/jpeg", MimeTypeNames.FromExtension(".jpeg"));
     Assert.AreEqual("image/jpeg", MimeTypeNames.FromExtension(".jpg"));
     Assert.AreEqual("image/jxl", MimeTypeNames.FromExtension(".jxl"));
     Assert.AreEqual("image/png", MimeTypeNames.FromExtension(".png"));
     Assert.AreEqual("image/svg+xml", MimeTypeNames.FromExtension(".svg"));
     Assert.AreEqual("image/webp", MimeTypeNames.FromExtension(".webp"));
 }
        /// <summary>
        /// Appends a file to the input element.
        /// Requires the input element to be of type "file".
        /// </summary>
        /// <typeparam name="TElement">The type of element.</typeparam>
        /// <param name="input">The input to append to.</param>
        /// <param name="filePath">The path to the file, which should be appended.</param>
        /// <returns>The input itself for chaining.</returns>
        public static TElement AppendFile <TElement>(this TElement input, String filePath)
            where TElement : class, IHtmlInputElement
        {
            filePath = filePath ?? throw new ArgumentNullException(nameof(filePath));
            var name     = Path.GetFileName(filePath);
            var ext      = Path.GetExtension(filePath);
            var type     = MimeTypeNames.FromExtension(ext);
            var stream   = File.OpenRead(filePath);
            var modified = File.GetLastWriteTimeUtc(filePath);
            var file     = new InputFile(name, type, stream, modified);

            return(input.AppendFile(file));
        }
Exemple #7
0
        /// <summary>
        /// Gets the content-type from the response's headers.
        /// </summary>
        /// <param name="response">The response to examine.</param>
        /// <param name="defaultType">The default type to apply.</param>
        /// <returns>The provided or default content-type.</returns>
        public static MimeType GetContentType(this IResponse response, String defaultType)
        {
            var fileName = response.Address.Path;
            var index    = fileName.LastIndexOf('.');

            if (index >= 0)
            {
                var extension = fileName.Substring(index);
                defaultType = MimeTypeNames.FromExtension(extension);
            }

            var value = response.Headers.GetOrDefault(HeaderNames.ContentType, defaultType);

            return(new MimeType(value));
        }
        /// <summary>
        /// Gets the filename of the content-disposition header or
        /// alternatively via a path analysis together with the MIME type.
        /// </summary>
        /// <param name="response">The response to extend.</param>
        /// <returns>The determined file name.</returns>
        public static String GetAttachedFileName(this IResponse response)
        {
            var dispositionFileName = default(String);

            if (response.Headers.TryGetValue(HeaderNames.ContentDisposition, out var disposition))
            {
                dispositionFileName = GetFileNameFromDisposition(disposition);
            }

            var filename          = dispositionFileName ?? response.Address.Path.Split('/').LastOrDefault() ?? "_";
            var standardExtension = Path.GetExtension(filename);

            if (String.IsNullOrEmpty(standardExtension))
            {
                var type      = response.GetContentType(MimeTypeNames.Binary).Content;
                var extension = MimeTypeNames.GetExtension(type);
                return(filename + extension);
            }


            return(filename);
        }
 Boolean IScriptingService.SupportsType(String mimeType) =>
 MimeTypeNames.IsJavaScript(mimeType);