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