Проблема в том, что содержимое byte.eml
не является изображением в кодировке base64, это документ MIME.
Вам необходимо проанализировать документ MIME и , а затем получить ваше изображение.
Вы можете погуглить "C # MIME MAIL PARSING".
Вот связанный ТАК вопрос , чтобы вы начали
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, и запишет его в ответ.
Если это все еще не работает, у вас есть еще один вопрос:
Как правильно извлечь раздел base64 из электронной почты MIME?
<%@ 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>