Starts uploading a document to the cache.
beginUpload = function(
documentId
)
static beginUpload(
documentId: string
): JQueryPromise<string>;
documentId
Optional: The ID to be used with the loaded document.
A Promise object that may resolve successfully to a string object containing the result's URI that can be used with UploadDocument/uploaddocumentblob to upload a document.
This method is the equivalent of calling beginUploadDocument with an instance of UploadDocumentOptions using all default parameter and UploadDocumentOptions.documentId set to documentId.
When the value of documentId is null (the default), then the document factory will create a new unique ID using a GUID generator. If the value is not null, then it is assumed to be a user-defined ID and used as is. In either case, the value is set in the LEADDocument.DocumentId property of the newly created document.
User-defined IDs can be used when the system already have unique IDs associated with the documents to be viewer. The document factory will not check nor guarantee the uniqueness of these IDs.
BeginUpload returns a Promise for a uri that
the application may use to upload a JavaScript Blob
/File
object with UploadDocument/uploaddocumentblob.
BeginUpload, UploadDocument/uploaddocumentblob, and AbortUploadDocument
are used together to get the same functionality as UploadFile/uploadfiledocument, giving more control over the upload process.
When uploading is finished, EndUpload must be called to inform the factory that the uploading process has finished.
Refer to Uploading Using LEADTOOLS Document Library for more information on how to use this method.
import { DocumentHelper } from "../../utilities/DocumentHelper";
export class DocumentFactory_UploadDocumentExample {
public constructor() {
lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);
DocumentHelper.initFactory();
}
public run = (buttonID: string) => {
document.getElementById(buttonID).onclick = this.onClick;
}
onClick = () => {
//Load the initial document
const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf";
this.loadDocument(url, true);
}
loadDocument = (url: string, downloadAfterLoad: boolean) => {
DocumentHelper.log("Loading document " + url);
lt.Document.DocumentFactory.loadFromUri(url, new lt.Document.LoadDocumentOptions())
.done((doc) => {
DocumentHelper.log("Document loaded and has cache id: " + doc.documentId);
if (downloadAfterLoad) {
this.afterLoadDocument(doc);
}
})
.fail(DocumentHelper.showServiceError);
}
afterLoadDocument = (doc: lt.Document.LEADDocument) => {
// Download its data
lt.Document.DocumentFactory.downloadDocumentData(doc.documentId, null, false)
.done((result) => {
DocumentHelper.log("Finished downloading, mime type: " + result.mimeType + " data length: " + result.data.byteLength);
// Upload the data to a different document
this.uploadDocument(result.data);
})
.fail(DocumentHelper.showServiceError);
}
uploadDocument = (data: ArrayBuffer) => {
// Start the data
const uploadDocumentOptions = new lt.Document.UploadDocumentOptions();
// If we have the total size of the document set it.
// This will help optimize the upload process on the service
uploadDocumentOptions.documentDataLength = data.byteLength;
lt.Document.DocumentFactory.beginUploadDocument(uploadDocumentOptions)
.done((uploadUri) => {
// Upload the data
lt.Document.DocumentFactory.uploadDocument(uploadUri, data, 0, data.byteLength)
.done(() => {
// Finish it
lt.Document.DocumentFactory.endUpload(uploadUri)
.done(() => {
// Load it and check
this.loadDocument(uploadUri, false);
})
.fail(DocumentHelper.showServiceError);
})
.fail(DocumentHelper.showServiceError);
})
.fail(DocumentHelper.showServiceError);
}
}
export class DocumentHelper {
static showServiceError = (jqXHR, statusText, errorThrown) => {
alert("Error returned from service. See the console for details.");
const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown);
console.error(serviceError);
}
static log = (message: string, data?: any) => {
const outputElement = document.getElementById("output");
if (outputElement) {
const time = (new Date()).toLocaleTimeString();
const textElement = document.createElement("p");
textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message;
outputElement.insertBefore(textElement, outputElement.firstChild);
}
if (!data)
console.log(message);
else
console.log(message, data);
}
static initFactory = () => {
// To communicate with the DocumentsService, it must be running!
// Change these parameters to match the path to the service.
lt.Document.DocumentFactory.serviceHost = "http://localhost:40000";
lt.Document.DocumentFactory.servicePath = "";
lt.Document.DocumentFactory.serviceApiPath = "api";
}
}
import { DocumentHelper } from "../../utilities/DocumentHelper";
export class DocumentFactory_UploadDocumentExample {
constructor() {
lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);
DocumentHelper.initFactory();
}
run = (buttonID) => {
document.getElementById(buttonID).onclick = this.onClick;
}
onClick = () => {
//Load the initial document
const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf";
this.loadDocument(url, true);
}
loadDocument = (url, downloadAfterLoad) => {
DocumentHelper.log("Loading document " + url);
lt.Document.DocumentFactory.loadFromUri(url, new lt.Document.LoadDocumentOptions())
.done((doc) => {
DocumentHelper.log("Document loaded and has cache id: " + doc.documentId);
if (downloadAfterLoad) {
this.afterLoadDocument(doc);
}
})
.fail(DocumentHelper.showServiceError);
}
afterLoadDocument = (doc) => {
// Download its data
lt.Document.DocumentFactory.downloadDocumentData(doc.documentId, null, false)
.done((result) => {
DocumentHelper.log("Finished downloading, mime type: " + result.mimeType + " data length: " + result.data.byteLength);
// Upload the data to a different document
this.uploadDocument(result.data);
})
.fail(DocumentHelper.showServiceError);
}
uploadDocument = (data) => {
// Start the data
const uploadDocumentOptions = new lt.Document.UploadDocumentOptions();
// If we have the total size of the document set it.
// This will help optimize the upload process on the service
uploadDocumentOptions.documentDataLength = data.byteLength;
lt.Document.DocumentFactory.beginUploadDocument(uploadDocumentOptions)
.done((uploadUri) => {
// Upload the data
lt.Document.DocumentFactory.uploadDocument(uploadUri, data, 0, data.byteLength)
.done(() => {
// Finish it
lt.Document.DocumentFactory.endUpload(uploadUri)
.done(() => {
// Load it and check
this.loadDocument(uploadUri, false);
})
.fail(DocumentHelper.showServiceError);
})
.fail(DocumentHelper.showServiceError);
})
.fail(DocumentHelper.showServiceError);
}
}
export class DocumentHelper {
static showServiceError = (jqXHR, statusText, errorThrown) => {
alert("Error returned from service. See the console for details.");
const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown);
console.error(serviceError);
}
static log = (message, data) => {
const outputElement = document.getElementById("output");
if (outputElement) {
const time = (new Date()).toLocaleTimeString();
const textElement = document.createElement("p");
textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message;
outputElement.insertBefore(textElement, outputElement.firstChild);
}
if (!data)
console.log(message);
else
console.log(message, data);
}
static initFactory = () => {
// To communicate with the DocumentsService, it must be running!
// Change these parameters to match the path to the service.
lt.Document.DocumentFactory.serviceHost = "http://localhost:40000";
lt.Document.DocumentFactory.servicePath = "";
lt.Document.DocumentFactory.serviceApiPath = "api";
}
}
<!doctype html>
<html lang="en">
<title>Document Example | UploadDocument</title>
<head>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src="../../LT/Leadtools.js"></script>
<script src="../../LT/Leadtools.Controls.js"></script>
<script src="../../LT/Leadtools.Annotations.Engine.js"></script>
<script src="../../LT/Leadtools.Annotations.Designers.js"></script>
<script src="../../LT/Leadtools.Annotations.Rendering.Javascript.js"></script>
<script src="../../LT/Leadtools.Annotations.Automation.js"></script>
<script src="../../LT/Leadtools.ImageProcessing.Main.js"></script>
<script src="../../LT/Leadtools.ImageProcessing.Color.js"></script>
<script src="../../LT/Leadtools.ImageProcessing.Core.js"></script>
<script src="../../LT/Leadtools.ImageProcessing.Effects.js"></script>
<script src="../../LT/Leadtools.Document.js"></script>
<script src="../../LT/Leadtools.Document.Viewer.js"></script>
<link rel="stylesheet" type="text/css" href="../../css/examples.css">
<!-- All demo files are bundled and appended to the window -->
<script src="../../bundle.js" type="text/javascript"></script>
</head>
<body>
<div>
<button type="button" id="exampleButton">Run Example</button>
</div>
<div id="output"></div>
<div>
<img id="img" />
</div>
</body>
<script>
window.onload = () => {
const example = new window.examples.DocumentFactory.UploadDocument();
example.run("exampleButton");
};
</script>
</html>
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