我已经在Progress 4GL中开发了一个简单的Web服务,我从中接收了一个数据集,其中包含一个blob,我已经存储了一个pdf文件。
DEFINE TEMP-TABLE TTDocument NO-UNDO
FIELD DocSeqNr AS INT
FIELD FileName AS CHAR
FIELD EventCode AS CHAR
FIELD EventDescr AS CHAR
FIELD FileContent AS BLOB
.
DEFINE DATASET ds FOR TTDocument.
DEFINE INPUT PARAMETER pCoCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pLanCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pUsrCd AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pFilter AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER DATASET FOR ds.
DEFINE OUTPUT PARAMETER pErrorTxt AS CHARACTER NO-UNDO.
在.Net中,我向这个Web服务发出请求,我处理这样的响应:
XmlElement doc;
DataSet xxx = new DataSet();
beaHostDB.GetDocumets(pCoCd, lanCd, pUsrCd,idAdd, out doc, out pErrorTxt);
XmlElementToXmlDocment(doc);
var reader = new StringReader(doc.InnerXml);
xxx.ReadXml(reader);
foreach (DataRow dr in xxx.Tables[0].Rows)
{
DcumentList.Add(new Document { FileContent =dr["FileContent"].ToString});
}
所以现在我有一个带有这个pdf文件的二进制表示的字符串。
如何将此字符串转换为bytes []以在c#中获取此pdf文件?
答案 0 :(得分:0)
可能应该使用Base64进行编码,因此您应该使用方法Convert.FromBase64String
:
var byteContent = Convert.FromBase64String(dr["FileContent"].ToString())
答案 1 :(得分:0)
var test =(byte [])dr [“ FileContent”]。ToString();