Acessar arquivo fora da estrutura Web
19/03/2012
0
Estou tentando acessar arquivo fora da estrutura Web e não consigo.
Para ativar o site, montei o diretório virtual assim: C:\NETNUCLEO\EFIGIE\LOGIN.ASPX
Dentro dessa estrutura eu consigo acessar qualquer arquivo, por exemplo um de imagem FOTO01.JPG.
Como estou montando sistema para acessar um banco gigante (2TB) de imagnes, os arquivos terão que ficar fora da estrutura raiz/padrão do sistema.
Como exemplo, esses ficarão em outro HD, ou seja, no diretório H:\FOTOS\FOTOS01.JPG
Mas quando tento acessar/mostrar esta imagem e colocar a propriedade ImageUrl = H:\FOTOS\FOTOS01.JPG simplesmente não mostra nada.
Existe alguma forma de acessar arquivos fora da estrutura padrão?
Osvaldo Júnior
Posts
19/03/2012
Joel Rodrigues
19/03/2012
Joel Rodrigues
21/04/2012
Osvaldo Júnior
Autor: Rafael Cardoso (http://csharpbrasil.com.br/forum/asp-net/acessar-arquivoimagem-fora-da-estrutura-web/)
Para exibir você precisará fazer o seguinte. Primeiro crie um novo arquivo do tipo Generic Handler (extensão .ashx) e copie e cole o codigo abaixo.
<%@ WebHandler Language=C# class=exibi_imagem %>
using System;
using System.Web;
using System.IO;
public class exibi_imagem : IHttpHandler
{
private const string diretorioImagens = @H:\FOTOS\;
public void ProcessRequest (HttpContext context) {
string arquivo = context.Request.QueryString[arquivo];
string caminho = Path.Combine(diretorioImagens, arquivo);
System.Drawing.Image imagem = System.Drawing.Bitmap.FromFile(caminho);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
imagem.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
context.Response.BinaryWrite(ms.ToArray());
}
public bool IsReusable
{
get
{
return false;
}
}
}
O que ocorre nesse código é o seguinte. Uma QueryString chamada arquivo será passada para o arquivo. Dentro do arquivo temos uma constante apontando o diretorio das imagens. Concatenaremos ele ao nome do arquivo e abriremos a imagem para escrever no browser.
No seu codigo html utilizará assim:
<asp:Image ID=Image1 runat=server ImageUrl=exibi_imagem.ashx?arquivo=fotos01.jpg />
Clique aqui para fazer login e interagir na Comunidade :)