Source of a MIME type callback invocation.
[SerializableAttribute()][DataContractAttribute()]public enum DocumentMimeTypeSource
public:[SerializableAttribute,DataContractAttribute]enum class DocumentMimeTypeSource sealed
class DocumentMimeTypeSource(Enum):User = 0Cache = 1Url = 2Data = 3
| Value | Member | Description |
|---|---|---|
| 0 | User | The mime type is passed by the user. For instance, in LoadDocumentOptions.MimeType. |
| 1 | Cache | The mime type is stored in the cache, for example, from BeginUploadDocumentOptions.MimeType. |
| 2 | Url | The mime type was obtained from the HTTP headers of a URL as set by the server containing the document. |
| 3 | Data | The mime type is read by LEADTOOLS RasterCodecs from the actual image data. |
Refer to DocumentMimeTypes for more information.
using Leadtools;using Leadtools.Codecs;using Leadtools.Document.Writer;using Leadtools.Document;using Leadtools.Caching;using Leadtools.Annotations.Engine;using Leadtools.Ocr;using Leadtools.Barcode;using Leadtools.Document.Converter;public void MimeTypesWhitelistExample(){// Documents to try and loadstring[] urls ={"https://demo.leadtools.com/images/pdf/leadtools.pdf","https://demo.leadtools.com/images/tiff/ocr.tif","https://demo.leadtools.com/images/png/pngimage.png"};// Setup a callback for logging// DocumentMimeTypes & DocumentMimeTypes.UserGetDocumentStatusHandler referenceDocumentMimeTypes.UserGetDocumentStatusHandler userGetDocumentStatus = (Uri uri, LoadDocumentOptions options, DocumentMimeTypeSource source, string mimeType) =>{// Use default operationDocumentMimeTypeStatus status = DocumentFactory.MimeTypes.GetDocumentStatus(uri, options, source, mimeType);string mimeTypeValue = mimeType != null ? mimeType : "[null]";DocumentFactory.MimeTypes.GetStatus(mimeTypeValue);Console.WriteLine(string.Format(" ** Whitelist url:{0} source:{1} mimeType:{2} status:{3}", uri.ToString(), source, mimeTypeValue, status));return status;};DocumentFactory.MimeTypes.UserGetDocumentStatus = userGetDocumentStatus;// Load the documents, by default we should load all of themConsole.WriteLine("Everything should load OK");LoadDocuments(urls);// Now, disable loading everything except PDF and TIFF and try againConsole.WriteLine("Disabling everything except PDF and TIFF");DocumentFactory.MimeTypes.DefaultStatus = DocumentMimeTypeStatus.Denied;DocumentFactory.MimeTypes.Entries.Add("application/pdf", DocumentMimeTypeStatus.Allowed);DocumentFactory.MimeTypes.Entries.Add("image/tiff", DocumentMimeTypeStatus.Allowed);Console.WriteLine("Only PDF and TIFF should be loaeded");LoadDocuments(urls);// ResetDocumentFactory.MimeTypes.UserGetDocumentStatus = null;}private static void LoadDocuments(string[] urls){var loadDocumentOptions = new LoadDocumentOptions();foreach (var url in urls){Console.WriteLine(" Loading " + url);using (var document = DocumentFactory.LoadFromUri(new Uri(url), loadDocumentOptions)){if (document != null)Console.WriteLine(" is Loaded");elseConsole.WriteLine(" cannot be loaded");}}}
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import java.nio.file.Files;import java.nio.file.Paths;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.regex.Pattern;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.annotations.engine.*;import leadtools.barcode.*;import leadtools.caching.*;import leadtools.codecs.*;import leadtools.document.*;import leadtools.document.DocumentMimeTypes.UserGetDocumentStatusHandler;import leadtools.document.converter.*;import leadtools.document.writer.*;import leadtools.ocr.*;public void documentMimeTypesExample() throws URISyntaxException {// Documents to try and loadString[] urls = {"https://demo.leadtools.com/images/pdf/leadtools.pdf","https://demo.leadtools.com/images/tiff/ocr.tif","https://demo.leadtools.com/images/png/pngimage.png"};// Setup a callback for logging// DocumentMimeTypes & DocumentMimeTypes.UserGetDocumentStatusHandler referenceUserGetDocumentStatusHandler userGetDocumentStatus = new UserGetDocumentStatusHandler() {@Overridepublic DocumentMimeTypeStatus userGetDocumentStatus(URI uri, LoadDocumentOptions options,DocumentMimeTypeSource source, String mimeType) {// Use default operationDocumentMimeTypeStatus status = DocumentFactory.getMimeTypes().getDocumentStatus(uri, options, source,mimeType);String mimeTypeValue = mimeType != null ? mimeType : "[null]";DocumentFactory.getMimeTypes().getStatus(mimeTypeValue);System.out.println(String.format(" ** Whitelist url:%s source:%s mimeType:%s status:%s%n", uri.toString(),source, mimeTypeValue, status));return status;}};DocumentFactory.getMimeTypes().setUserGetDocumentStatus(userGetDocumentStatus);// Load the documents, by default we should load all of themSystem.out.println("Everything should load OK");loadDocuments(urls);// Now, disable loading everything except PDF and TIFF and try againSystem.out.println("Disabling everything except PDF and TIFF");DocumentFactory.getMimeTypes().setDefaultStatus(DocumentMimeTypeStatus.DENIED);DocumentFactory.getMimeTypes().getEntries().put("application/pdf", DocumentMimeTypeStatus.ALLOWED);DocumentFactory.getMimeTypes().getEntries().put("image/tiff", DocumentMimeTypeStatus.ALLOWED);System.out.println("Only PDF and TIFF should be loaded");loadDocuments(urls);// ResetDocumentFactory.getMimeTypes().setUserGetDocumentStatus(null);}private void loadDocuments(String[] urls) throws URISyntaxException {LoadDocumentOptions loadDocumentOptions = new LoadDocumentOptions();for (String url : urls) {System.out.println(" Loading " + url);LEADDocument document = DocumentFactory.loadFromUri(new URI(url), loadDocumentOptions);if (document != null)System.out.println(" is Loaded");elseSystem.out.println(" cannot be loaded");}}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
