Finishes uploading a document to the cache.
endUpload = function(
uri
)
static endUpload(
uri: string
): JQueryPromise<any>;
uri
The temporary document URI. This must be the same value returned from beginUpload or beginUploadDocument and cannot be null.
A Promise object that may resolve successfully.
When uploading is finished, EndUpload must be called to inform the factory that the uploading process has finished.
Refer to Uploading Using the Document Library for detailed information on how to use these methods and the various options used.
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