0

Wakanda 连接到的 4Dv15 数据库中表的 BLOB 字段中有一个 PDF。当我从服务器端脚本(在 Wakanda 中)的字段中提取 BLOB 时,它是一个对象:

{'size': 12915, 'type': 'application/octet-stream'}

PDF 或二进制数据似乎不在返回的对象中。我想将 BLOB 中的 PDF 交付给客户。你能帮我弄清楚如何做到这一点吗?

谢谢

编辑:这是我尝试使用代码时得到的:

console.log(blob); var objectUrl = URL.createObjectURL(blob); window.open(objectUrl);

在此处输入图像描述

编辑 2:这是我用来获取 blob 的服务器端代码。我只是想让它在这里工作。表中只有一条记录,并且在 BLOB 中有一个 PDF。

var reportCollection = ds.ReportLog.all(); var blob = reportCollection[0].ReportBlob;

这段代码的结果是上面看到的对象——我没有看到任何证据表明 4D 正在返回 BLOB 的二进制数据,而只是返回该 BLOB 的属性。

4

1 回答 1

1

从 Wakanda请求处理程序中,您可以使用sendChunkedData()

response.sendChunkedData(blob)

.copyTo()或者使用BLOB API将 blob 写入服务器上的文件并将文件提供给客户端:

var myFile = new File (outputFolder + filename) 
blob.copyTo(myFile)

另一个选项可能是URL.createObjectURL静态方法,可以像这样使用:

var objectUrl = window.URL.createObjectURL(blob)
window.open(objectUrl)

另请参阅:URL.revokeObjectURL

于 2016-06-20T16:39:12.167 回答