Algumas vezes temos um Stream que contém dados para imprimirmos na tela para o usuário. Um cenário muito usado é quando por exemplo precisamos exibir ao usuário um avatar, ou mesmo uma imagem que está armazenada em uma DB qualquer e para não interferir o processamento da página corrente, criamos uma segunda página, esta responsável por recuperar o arquivo e carregar em um objeto do tipo FileStream, e assim, percorrer este objeto e imprimi-lo no browser.
A classe FileStream está contida dentro do Namespace System.IO, qual temos que importá-lo para a utilização desta classe sem a necessidade de digitarmos o “path” completo da mesma. Apenas como exemplo, utilizaremos um arquivo que está no disco para exibição.
|

|
Em primeiro lugar, importamos o Namespace System.IO:
Abaixo o código no evento Page_Load do WebForm, que carrega a imagem para o Stream e en seguida, exibimos a imagem no browser:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
|
|
Private Sub Page_Load(ByVal sender As Object, ByVal e As _ |
System.EventArgs) Handles MyBase.Load |
|
Response.Clear() |
Dim fs As FileStream |
Dim b(1024) As Byte |
Try |
fs = File.Open(Server.MapPath(“Images/Win2003.jpg”), _ |
FileMode.Open, FileShare.Read, FileShare.None) |
|
While (fs.Read(b, 0, b.Length) > 0) |
Response.BinaryWrite(b) |
End While |
Finally |
If Not (fs Is Nothing) Then |
fs.Close() |
End If |
End Try |
Response.End() |
End Sub |
|
|
Analisando o código acima, através do método Open da Classe File (que também está contida no Namespace System.IO), que nos retorna um objeto do tipo FileStream, atribuímos o seu retorno à um objeto FileStream. Depois disso, percorremos o nosso Stream enquanto o seu conteúdo seja maior que 0, pois através do método Read lemos um bloco de bytes do Stream e escrevemos esses dados em um determinado buffer. E por fim, chamamos o método Response.End() para encerrar a execução, já que a página foi criada apenas para esta finalidade.
Curtir isso:
Curtir Carregando...