2010-05-02 81 views
1

byte.eml文件是有圖像base64編碼值..我打算在瀏覽器中打開它...但這不是填充圖像文件.... plz幫助我出..需要打開一個圖像在網絡瀏覽器中打開

這是代碼...
昏暗OFILE由於有System.IO.File 昏暗俄瑞阿得斯作爲就是System.IO.StreamReader

orEAD = oFile.OpenText("E:\mailbox\P3_hemantd.mbx\byte.eml") 
Dim content As String 
content = "" 

''Dim intsinglechr As Integer 
''Dim csinglechr As String 

While orEAD.Peek <> -1 
    content = content & Chr(orEAD.Read) 
    content = Replace(content, vbCrLf, "") 
    content = Replace(content, vbTab, "") 
    content = Replace(content, " ", "") 

End While 
Response.ContentType = "image/jpeg" 
Response.BinaryWrite(Convert.FromBase64String(content)) 

回答

0

是否功能Convert.FromBase64String(內容)的工作是否正確?嘗試寫入文件。

+0

其工作,但它產生但結果是出乎意料....例如 JFIF; CREATOR:GD-JPEG V1.0(使用IJG JPEG V62),質量= 85 C!「$」$ 我想寫它像...這給錯誤 Response.WriteFile(Convert.FromBase64String(content)) 錯誤。 類型'字節的1維數組'的值不能被轉換爲'字符串' 有一件事我希望你清除byte.eml文件只有基地64加密的圖像file.i嘗試它從diff實用程序轉換this工作.so需要asp.net編碼處理基於文件的解碼 – manish 2010-05-02 12:48:18

0

問題是byte.eml的內容不是base64編碼圖像,它是一個MIME文檔。

你需要解析MIME文件,然後然後得到你的圖像。

您可以谷歌「C#MIME MAIL PARSING」。

下面是相關SO question讓你開始

UPDATE

好了,讓我們假設你實際上有一個形象的有效表示爲Base64串...

<%@ Page Language="VB" %> 

<%@ Import Namespace="System.IO" %> 

<script runat="server"> 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 


     Dim bytes As Byte() = File.ReadAllBytes(Server.MapPath("Chrysanthemum.jpg")) 
     Dim base64 As String = Convert.ToBase64String(bytes) 

     '' base64 is what you say you have 


     Dim newBytes As Byte() = Convert.FromBase64String(base64) 
     Response.ClearContent() 
     Response.ClearHeaders() 
     Response.ContentType = "image/jpeg" 
     Response.BinaryWrite(newBytes) 
     Response.End() 

    End Sub 

</script> 

此代碼的工作原理是,如果用base64代替文本,但它不起作用,則表示圖像沒有有效的base64字符串表示形式。

更新2

這將讀取你說的base64包含並將其寫入到響應的文本文件。

如果仍然不工作,那麼你有一個問題要問:

如何正確提取一個MIME電子郵件64基部分?

<%@ Page Language="VB" %> 
<%@ Import Namespace="System.IO" %> 
<script runat="server"> 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim base64 As String = File.ReadAllText("E:\mailbox\P3_hemantd.mbx\byte.eml") 

     Dim newBytes As Byte() = Convert.FromBase64String(base64) 
     Response.ClearContent() 
     Response.ClearHeaders() 
     Response.ContentType = "image/jpeg" 
     Response.BinaryWrite(newBytes) 
     Response.End() 
    End Sub 
</script> 
+0

byte.eml文件只有基地64編碼圖像...我從eml文件中提取它。現在我打開它通過asp.net打開web瀏覽器。 ...但我沒有得到結果......幫我想我有txt文件內容基地64編碼image.eg 「R0lGODlhagAwAOZ /暗呼+ uLj4wZ0b4yT + oaHitfX11hj + H + H + xMn6Oj29xzVy9L19BHGvauw + ZVF 8sjIyEhV + Efaz2pvozKf3b29vQ0m1v7 +/u7u7gWJgwlgqoOzsSo67yTd0yXXzODi + wV/............「 所以發送我的確切的asp。用於將基礎64編碼文本轉換爲圖像的網絡代碼。 – manish 2010-05-02 12:38:23

+0

老闆你是偉大的...我試着你的代碼..和它的工作...我花了10小時後有點快樂事情發生了....讓我看 我的代碼說什麼.... 你會幫我一次..... 給我的代碼讀取TXT文件內容,並將其轉換字節 我要求更換這個.. 昏暗的字節爲字節()= File.ReadAllBytes(服務器。我想要存儲在base64我的文件內容 – manish 2010-05-02 13:07:06

+0

謝謝你FREND我解決了我的問題.... 謝謝很多.....我需要你的郵件...... f或進一步的幫助... – manish 2010-05-02 13:25:20

相關問題