LEADTOOLS文档库支持从用户上传文件缓存系统。这种支持是有益的,当缓存驻留在一个单独的机器,用户无法访问(例如,当文档类是驻留在web服务与一个JavaScript或富客户端应用程序如HTML5 / JavaScript版本的LEADTOOLS LEADTOOLS文档文档查看器使用web服务)。
上传一个文档支持只有一个有效的实例LEADTOOLS缓存对象传递给DocumentFactory.UploadDocument或建立在全球DocumentFactory.Cache财产。
所有上传的文档的方法DocumentFactory类。文档可以在块显示上传进度条并选择允许用户中止应用程序。
应用程序应该首先提示用户输入文件的位置,然后获得一个文件流对象原始文件的读访问权。在这一点上,采取以下行动:
创建一个实例UploadDocumentOptions可以填充任何可选值,然后调用BeginUpload方法。该方法将返回一个临时的URL对象创建的身份DocumentFactory为后续调用识别这个文件。这是一个自定义URL值在以下方案leadcache: / / unique_guid_identifier
,也就不能使用任何上传的其他方法。这个值必须保存在应用程序在一个局部变量。如果上传的数据的总长度是可用的,然后设置的值UploadDocumentOptions.DocumentDataLength可以极大地帮助工厂优化加载操作。
一块从源文件读入一个字节数组。这一块的大小取决于用户,块大小越大,缩短整个上传操作。注意,太大的一块可能节流服务器连接。值为64 k是一个很好的最低。一旦读取块,调用DocumentFactory.UploadDocument方法,通过URL获得价值BeginUpload和数据的一部分。
重复,直到文件已经阅读和上传,然后调用EndUpload。
外部注释数据也可以上传到文档如果需要。调用UploadAnnotations多少次就需要以同样的方式上传数据。
当上传完成后,简单地调用LoadFromUri或LoadFromCache方法像往常一样,当加载一个文件从一个远程URL。的DocumentFactory类将检查URL的值,可以将其识别为一个上传文档,没有访问物理文件,所以它将解析文档的上传数据。数据存储在缓存中,并在同一时间处理LEADDocument对象处理,其缓存条目已经过期。
后不需要上传URLLEADDocument对象。的LEADDocument对象本身以及DocumentId使用像往常一样与文档从这一点。
在任何时候在上传文档,DocumentFactory.AbortUploadDocument可以中止操作并调用吗DocumentFactory将立即从缓存中删除的数据上传。
为一个例子,请参考DocumentFactory.BeginUpload。
在上传过程中UploadDocument,DocumentFactory把每个块保存在缓存中。因此,最新的文档数据可用系统的所有用户。如果系统遇到错误,重启过程,可以重新启动,继续上传上传操作。这也保证了最少的内存时需要上传大文件(在任何时候只需要块大小)。这是当的行为UploadDocumentOptions.EnableStreaming是假默认值。
如果EnableStreaming被设置为真正的,然后DocumentFactory不保存数据块到缓存中文档上传UploadDocument。相反,它在内存中创建一个内部流和块附加到它的到来。当EndUpload,工厂一次然后存储数据流到缓存。这可能加速上传一个文档,但以牺牲更多的内存使用(整个文档的数据将在内存中)。考虑到上传操作不能重启,如果系统遇到错误然后重启的过程。因此,建议不要设置EnableStreaming来真正的除非系统是专为一个过程或单用户操作。
帖子上传操作可以进行文档上传后先缓存和之前加载。这些操作和可选值可以设置的UploadDocumentOptions.PostUploadOperations字典。
当执行的操作EndUpload被称为。
LEADTOOLS包含的当前版本支持以下帖子上传操作:
线性化PDF文档的文档进行快速优化网页浏览。当使用客户端渲染,LEADTOOLS JavaScript文件查看器可以利用线性化PDF查看PDF文件开始之前,所有的内容下载。
上传PDF文件可以检查线性化和转换上传使用以下:
/ /自动线性化(优化快速web浏览)大于1 mb PDF文件大小。
字节[]pdfData =…;/ /上传PDF格式的数据
字符串pdfPassword =零;/ /如果加密的PDF,设置它的密码
varuploadDocumentOptions =新UploadDocumentOptions ();
uploadDocumentOptions。缓存=缓存;
常量intminimumLengthInBytes = 1024 * 1024;
uploadDocumentOptions.PostUploadOperations.Add (LEADDocument。PostUpload_LinearizePdfMinimumLength minimumLengthInBytes.ToString ());
/ /工厂不会执行该操作,除非我们设置正确的mime类型:
uploadDocumentOptions。MimeType =“应用程序/ pdf”;
uploadDocumentOptions。密码= pdfPassword;
/ /现在上传
Uri documentUri = DocumentFactory.BeginUpload (uploadOptions);
DocumentFactory.UploadDocument(cache, documentUri, pdfData, 0, pdfData.Length);
DocumentFactory。EndUpload(cache, documentUri);
工厂上执行以下操作EndUpload
:
确定如果总上传大小大于minimumLengthInBytes
。如果是这样,电话PDFFile.IsLinearized检查如果PDF不是已经优化。如果没有优化,电话PDFFile.Linearize。
如果加密的PDF,然后需要一个密码来线性化。这可以通过的UploadDocumentOptions.Password如上所示。
的元数据LEADDocument可以检查以确定这是一个PDF文档与线性化数据使用下面的:
LEADDocument文档= DocumentFactory.LoadFromCache (loadFromCacheOptions);
boolisLinearized =假;
/ /检查元数据包含的关键
DocumentMetadata元数据= document.Metadata;
如果(metadata.ContainsKey (LEADDocument.MetadataKey_IsLinearized))
{
/ /是的
isLinearized =bool.Parse(元数据(LEADDocument.MetadataKey_IsLinearized));
}
如果(isLinearized)
{
/ /执行额外的操作
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。