public void MimeTypeReverseMappingUnavailable() { var original = "image/foobar"; var extension = MimeTypeNames.GetExtension(original); Assert.AreEqual("", extension); }
/// <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)); }
/// <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);