我有它返回字節數組的文件外部web服務(小,大20MB的文件的),它必須被轉換成BASE64的字符串和包括在XML文件的Base64編碼/解碼的大文件
編碼
代碼我用轉換的字節數組的base64是
Convert.ToBase64String(bytearray, 0, bytearray.Length, _
Base64FormattingOptions.InsertLineBreaks)
下面是實際的XML結構我使用LINQ到XML。
attachment = From Item In cpd _
Select New XElement("attachment", _
New XAttribute("id", Item.UniqueID), _
New XElement("attachmentDocumentInformation", _
New XElement("actor", New XAttribute("reference", Item.AttchRefId)), _
New XElement("documentDescription", _
New XElement("documentTitle", Item.Document), _
New XElement("documentType", "A"), _
New XElement("sequence", Item.Sequence))), _
New XElement("documentContent", _
New XAttribute("contentEncoding", "base64"), _
New XAttribute("id", "DocumentContent" + Item.UniqueID), _
New XAttribute("mimeType", Item.mimeType), _
Convert.ToBase64String(Item.Content, 0, Item.Content.Length, _
Base64FormattingOptions.InsertLineBreaks)))
解碼
我用frombase64轉換爲接收到的XML文件
Convert.FromBase64String(documentContentinBase64)
時文件的體積更小尺寸它工作得很好,當它是一個大的文件轉換返回「無這種接口支持「。
我有兩個問題:
- 什麼是大文件轉換tobase64/frombase64的最佳方式?
- 在將字節數組轉換爲base64之後,構建帶有base64文檔的xml文件的最佳方式是什麼?有沒有人有一些代碼?
感謝
'Convert.FromBase64String'沒有這樣的簽名。你能確認你的代碼嗎? – Jay 2011-06-09 16:31:13
當你說「爆炸」時,你的意思是什麼;有沒有例外?如果是這樣,請發佈例外的內容。 – Jacob 2011-06-09 16:32:10
另外假設在這一點上,bContent是'documentContent'節點的值嗎?爲什麼不序列化一個對象並讓'XmlSerializer'爲你做所有的工作? – Jay 2011-06-09 16:34:31