是否可以将ImageNow与Javascript和php相结合

Is it possible to combine ImageNow with Javascript and php?

本文关键字:Javascript php 相结合 ImageNow 是否      更新时间:2023-09-26

我目前有一个公司内部网站,我们的客户支持用户将在这里从我们的客户上传文件。最初,我计划使用mysql和一个受保护的共享网络文件夹的帮助,并使用mysql来保存文件名和路径。然而,我们也将ImageNow用于其他进程。有人知道ImageNow是否能在软件本身之外使用javascript和php吗?我是ImageNow的新手,所以任何建议都很感激。

            logObArray = getDocLogobArray(workingDoc);
            for (var i=0; i<logObArray.length; i++)
            {
                var docObj = logObArray[i];
                var filePath = docObj.filePath;
                var fileType = docObj.fileType;
                var ftToCheck = fileType.toUpperCase();
                var phsobID = docObj.phsobId;
                //write OSM info to the file, you'll have to add the other code around this but premise is correct and tested
                var outRow = filePath;
                outRow = outRow + ''n';
                if (Clib.fputs(outRow, outCsvFP) >= 0)
                {
                    debug.log('DEBUG', 'Wrote OSM Path [%s] to file successfully.'n', filePath);
                    stats.inc('Wrote OSM Path to file');
                }
            }

ImageNow有一种脚本语言,可以让您通过数据库中的加密文件路径。文件路径在INLogicalObject的未记录成员中可用。以下访问详细信息摘自以下博客文章。访问ImageNow 中的加密文件路径

搜索ImageNow 6.x特定的对象文档会发现INLogicalObject提供了有关存储在文件系统中的实际文件的信息。但是,它不包含任何有关文件路径的信息。在对象的外壳下仔细检查一下,就会发现它确实有一个文件路径字段,并且该值没有加密。它是INLogicalObject的成员。以下非常简单的示例显示如何查找单个文档,并在控制台上显示其文件类型和未加密的文件路径。

 // get a single document  
 var results = INDocManager.getDocumentsBySqlQuery( "", 1, var more );  
 if ( results )  
 {  
     var doc = results[0];  
     doc.getInfo();  
     // get a single page for the document  
     var logob = INLogicalObject( doc.id, -1, 1 );  
     logob.retrieveObject();  
     printf( "file type: %s'n", logob.filetype ); // this member is in the documentation  
     printf( "unencrypted file path: %s'n", logob.filepath ); // this member is not in the documentation  
 } 

不幸的是,ImageNow不能让您获得它在感知软件提供的工具之外存储的信息。即使您直接挖掘SQL数据库并查看存储文件的文件系统,也无法获取信息。ImageNow将未加密的文件存储在文件系统上,所以这很好,它将这些图像的元数据存储在数据库中易于搜索的表中。但是,从元数据到文件系统的路径在将其存储到数据库之前进行加密。因此,如果你试图从元数据到图像,你能得到的最远的路径就是加密路径。没有解密密钥,你就无法访问图像。

但是,有一种方法可以编写代码来使用ImageNow数据。您需要附加的消息代理-您需要从Perceptive购买。这为使用web服务和SOAP获取ImageNow数据打开了接口。

这是一个完整的解决方案。它获取根文件和后续页面。我发现的所有其他解决方案除了扫描文档的第一页外,都不会得到任何其他内容。将您的抽屉更改为您自己的抽屉名称(btw)。我希望这能帮助到别人。那些封锁人们内容的公司真的让我很生气。只需使用intool.exe实用程序。它位于您安装的/bin文件夹中。调用是:intool--cmd run iscript--file yourfile.js

var curDocId = 0;
var more = true;
// printf("curDocId : %s'n", curDocId );
while (more) {
    var rulestext = "[drawer] = 'AR' AND [docID] > '" + curDocId + "'";
    var items = INDocManager.getDocumentsByVslQuery(rulestext, 1000, more, "DOCUMENT_ID");
    var start = items[0];
    var dataDesc = new Array();
    var headerDelim = "'03"
    var dataDelim = "'02";
    for (var line=1; line <= start; line++) {
        var temp = items[line].split(headerDelim);
        dataDesc[temp[1].toUpperCase()] = new Object();
        dataDesc[temp[1].toUpperCase()].idx = line - 1;
        dataDesc[temp[1].toUpperCase()].name = temp[1];
        dataDesc[temp[1].toUpperCase()].datatype = temp[2];
    }
    for ( ; line < items.length; line++) {
        var doc = new INDocument(items[line].split(dataDelim)[dataDesc["DOCUMENT ID"].idx]);
        doc.id = items[line].split(dataDelim)[dataDesc["DOCUMENT ID"].idx];
        doc.getInfo();
        var masterDocId = doc.id;
        var itCounter = 150;
        var i = 1;
        for( ; i <= itCounter; i++) 
        {   
            doc.getInfo();
            var logob = INLogicalObject( doc.id, -1, i );  
            logob.retrieveObject();
            if(logob && logob.logobCount > 0)
            {
                var fp = Clib.fopen("c:''inowoutput.txt", "a");
                var line = masterDocId + ',' + logob.id + ',' + logob.workingName + ',' + logob.filePath + ''n';
                Clib.fputs(line, fp);
                Clib.fclose(fp);
            }
            else
            {
                break;                  
            }
        }
        curDocId = doc.id;
    }

    //printf("curDocId : %s'n", curDocId );
}

查看ImageNow中的外部消息代理(EMA)功能。这是一个免费的模块,可以在每次安装中使用。

EMA允许您从ImageNow系统外部接收数据(例如,从PHP web表单)。

要使用EMA,只需要将PHP脚本插入到IN_EXTERN_MSG和IN_EXTTERN_MSG_PROP表中。其中一个属性可以是通过PHP上传的文件的位置。

然后,您需要一个iScript来解析EMA表中的数据,并在ImageNow中创建一个文档。

我以前构建过这样的解决方案,效果非常好。