WebBrowser - wczytanie pliku w postaci bajtowej

0

Korzystam z kontrolki WebBrowser i chcę na niej wyświetlać plik, który mam w aplikacji w postaci bajtowej. Plik nie może być zapisany na dysku. Jak przekazać go do WebBrowsera?

Działają mi takie odwołania:

webBrowser1.Navigate("4programmers.net")
webBrowser1.Navigate("c:\\plik.pdf")

zastanawiam się, jak wyświetlić takiego pdfa/xml/bmp, którego otrzymuję jako byte:

byte[] DataAsBytes = getBytesFile();
webBrowser1.Navigate( "co tu wstawić ?")
0

Na pewno da się prościej, ale nie mam czasu na lekturę dokumentacji: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXk7/Wxz+F6rsvQ4u35+/w/irT///9WmMX//11SAAAAiUlEQVR4Ae3QsQ5BMRTGcZbeB3CxCy8glzsT6d0lZ2+i+WYc0tfXLlo97cAm/NdfvuUbuUpfDJO+CKyBUwkUfIOEM3DQsBK2GN+vHRoB2qyIGLscGHsiOiqTww09+WZWwiZAW4BpgGUV8AasF74W81dQeDakcEHMpMAJ2M/gD9V3XRcHTQTRT8ADvbX4gWAxfDYAAAAASUVORK5CYII=

0

Kiedyś robiłem coś z webBrowser. Jeśli chcesz coś wyświetlić w kontrolce a trzymasz to w postaci bajtów można zrobić to tak:

byte[] DataAsBytes = getBytesFile();
MemoryStream ms = new MemoryStream(DataAsBytes);
webBrowser1.DocumentStream = ms;
0

Kurczę, wygooglałem już ten sposób, niestety wyświetla mi on tylko wnętrze pliku, tak jakbym podejrzałbym go notatnikiem. Niezależnie od formatu, czy to BMP, czy PDF. Coś jeszcze można zrobić z tym streamem?

0

.Navigate działa trochę inaczej od podania DocumentStream. Przypisanie czegoś do tego drugiego powoduje stworzenie dokumentu HTML niezależnie co mu tam podasz. .Navigate najpierw sprawdza faktyczny typ podanego mu pliku i w zależności od niego może od razu stworzyć kontrolkę ActiveX powiązaną z typem - dla pliku .pdf stworzy instancję pluginu Adobe Readera.
Jeżeli wiesz z góry jakie typy plików będą otwierane to możesz zrobić zwykłego switcha i potworzyć je samemu, już bez WebBrowsera. W przeciwnym wypadku można pobawić się rejestrem, powyciągać zarejestrowane COMy i zasymulować działanie .Navigate.
Prościej będzie jednak zapisać gdzieś plik na dysku ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1