如何将PDF文件发送到Progress AppServer?

时间:2009-08-21 08:08:54

标签: progress-4gl

我在客户端有一个PDF文件,我想在AppServer上发送这个PDF文件。如何在AppServer发送此pdf文件?

3 个答案:

答案 0 :(得分:2)

define temp-table ttFileList no-undo
    field file-id as integer
    field file-content as blob.

create ttFileList.
assign ttFileList.file-id = 1.

copy-lob from file("pdffilename") to ttFileList.file-content.

run DoSomethingWithAPDF on hAppServer
    ( input table ttFileList ).

答案 1 :(得分:2)

这取决于您使用的进度版本,如果您使用的是v9,那么您将需要使用分段流式传输的小块原始数据。使用OpenEdge(可能是10.1B)我们获得了CLOB和BLOB支持,您可以创建一个以临时表作为参数的过程。

这还取决于您的通话语言。对于.NET和Java,这将被转换为字节数组。

对于您的app-server,请创建类似于以下内容的过程:

def temp-table ObjectTransfer no-undo
    field Code          as char
    field Number        as int
    field DataContent   as blob
    field MimeType      as char.

procedure AddObjectData:
    def input param table for ObjectTransfer.

    def var k as int no-undo.

    for each ObjectTransfer:
        find last ObjectTable no-lock
            where ObjectTable.Code = ObjectTransfer.Code
            no-error.
        if avail ObjectTable then
            k = ObjectTable.Number + 1.
        else
            k = 1.

        create ObjectTable.
        assign
            ObjectTable.Code = ObjectTransfer.Code
            ObjectTable.Number = k
            ObjectTable.MimeType = ObjectTransfer.MimeType
            ObjectTable.DataContent = ObjectTransfer.DataContent
            .
    end.
end procedure.

生成代理,您现在将使用简单的字节数组作为输入临时表数据类型从.NET和Java中调用它。

答案 2 :(得分:0)

使用原始数据类型,您可能需要以块的形式发送文件。另一种方法是使用character + BASE64。