1
背景:我試圖在ASP.Net頁面上顯示來自Ax2012數據庫的圖像。將AxaptaContainer轉換爲Byte []或Base64
問題:圖像存儲在Ax2012數據庫中作爲一個BLOB(或井,斧頭容器)。我必須在我的C#.Net Web服務(通過BusinessConnector連接)中將其轉換爲Byte數組,或者直接轉換爲Base64字符串。
我做了什麼: 隨着如下面的代碼,我得到一個異常的imageObject是不可序列。我在某種程度上理解,但我會怎麼做呢?
代碼背後:
while (axRecord.Found)
{
string workerRecId = axRecord.get_Field("WorkerRecId").ToString();
string name = axRecord.get_Field("Name").ToString();
string image;
using (MemoryStream ms = new MemoryStream())
{
AxaptaContainer imageObject = (AxaptaContainer)axRecord.get_Field("Image");
new BinaryFormatter().Serialize(ms, imageObject);
image = Convert.ToBase64String(ms.ToArray());
}
string wppServiceWarehouse = axRecord.get_Field("WPPServiceWarehouse").ToString();
dataTable.Rows.Add(new object[] { workerRecId, name, image, wppServiceWarehouse });
axRecord.Next();
}
ASP頁:
<asp:Image id="employee_ProfilePhoto" runat="server" imageUrl='<%# "data:image/png;base64," + Eval("Image") %>'/>
我也試了一下強制轉換爲字符串,在這種情況下,我沒有得到任何異常拋出,也沒有圖像;)
有什麼建議嗎?
感謝
謝謝馬捷,將會給它一試早上! –