необходимо открыть изображение, открытое в веб-браузере - PullRequest
1 голос
/ 02 мая 2010

файл byte.eml имеет значение в кодировке base64 изображения ... и я пытаюсь открыть его в браузере ... но это не заполняющий файл изображения .... плз, помогите мне ..

это код ...
Dim oFile As System.IO.File Dim orEAD As 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))

Ответы [ 2 ]

0 голосов
/ 02 мая 2010

Проблема в том, что содержимое 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>
0 голосов
/ 02 мая 2010

Правильно ли работает функция Convert.FromBase64String (content)? Попробуйте написать в файл.

...