public void Should_Return_Default_ContentType() { var uri = new Uri("http://www.bettercms.com/test/logo"); var contentType = MimeTypeUtility.DetermineContentType(uri); Assert.AreEqual("application/octet-stream", contentType); }
public void Should_Determine_ContentType_Uppercase() { var uri = new Uri("http://www.bettercms.com/test/LOGO.PNG"); var contentType = MimeTypeUtility.DetermineContentType(uri); Assert.AreEqual("image/png", contentType); }
public HttpResponseMessage Download(Guid id, bool inline = false) { var response = default(HttpResponseMessage); using (var engine = new P8ContentEngine()) { var properties = engine.GetDocument(id, os, dc); if (properties != null && properties.Any()) { var document = properties.MapToFileNet(new Document(os, dc), true, true); var mimeType = (!MimeTypeUtility.DefaultType.Equals(document.MimeType, StringComparison.CurrentCultureIgnoreCase) ? document.MimeType : null) ?? MimeTypeUtility.GetMimeType(document.Name, null) ?? MimeTypeUtility.GetMimeType(document.Title); var fileExtension = MimeTypeUtility.GetFileExtension(mimeType); var fileName = document.Title ?? document.Name; if (!fileName.EndsWith(fileExtension)) { fileName += fileExtension; } var content = ((IList <byte[]>)properties["ContentElements"]).First(); response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(content) }; response.Content.Headers.ContentLength = content.Length; response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue(!inline ? "attachment" : "inline") { FileName = fileName }; } } return(response); }
public Task <HttpResponseMessage> Upload() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new CustomMultipartFormDataStreamProvider(); return(Request.Content.ReadAsMultipartAsync(provider).ContinueWith(t => { var content = default(byte[]); var location = default(string); if (t.IsFaulted || t.IsCanceled) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception); } foreach (var file in provider.CustomFileData) { var details = new { MimeType = MimeTypeUtility.GetMimeType(file.LocalFileName), LocalName = file.LocalFileName, FileName = file.Headers.ContentDisposition.FileName, Size = file.Headers.ContentDisposition.Size, Type = file.Headers.ContentType, Stream = file.MemoryStream, Metadata = file.Metadata }; using (var stream = details.Stream) { content = stream.ToArray(); } using (var engine = new P8CEUnderwriting()) { var results = engine.UploadUnderwritingDocuments(new[] { new Underwriting2014Document { Name = details.FileName, MimeType = details.MimeType, Content = content } }); if (results != null && results.Any()) { location = results.First().ToString("B"); } } } var response = Request.CreateResponse(HttpStatusCode.Created); response.Headers.Location = new Uri(location); return response; })); }