Jump to content

[Resolvido] IIS7 - Abrir imagens


Recommended Posts

Posted

Boas

Estou com um problema.

Tenho uma aplicação web numa intranet a corre no iis7.

Necessito que a aplicação abra imagens que estão numa pasta partilhada noutro servidor.

A aplicação grava as imagens nessa pasta normalmente mas não as consegue mostrar.

Tudo corre bem ma máquina de desenvolvimento mas quando publico no iis deixo de conseguir visualizar as imagens.

Obrigado

Posted

Estás a tentar visualizar a imagem com que endereço?

A melhor forma talvez seja leres a imagem para um byte[] e usares o Response.BinaryWrite juntamente com o Response.ContentType, para enviares a imagem para o browser

Posted

Estou a tentar visualizar a imagem com o visualizador de imagens do windows ou com o programa que estiver definido para abrir o tipo de imagem.

Tudo finciona bem, para a mesma pasta, excepto quando publico no iis.

Posted (edited)

OK. Mas não quero mostrar a imagem no browser.

A situação é a seguinte:

A imagem é gravada numa pasta no servidor, que pode ser o mesmo do IIS ou não mas em princíio não, e o caminho é gravado numa tabela do MYSQL, caminho completo incluindo nome da imagem.

O caminho até à pasta está previamente definito num campo de uma tabela e é carregado na altura numa session. Só mudam os nomes das imagens.

Quando necessito de ver a imagem, clico numa gride que contem todas as imagens referentes ao mesmo assunto, obtenho o nome da magem e o resto do processo é mesmo.

Como já disse, tudo funciona bem até publicar no iis.

De referir que não há qualquer problema ao gravar, apenas a visualizar.

Edited by JCLopes
Posted

System.Diagnostics.Process.Start("explorer.exe", sPath);

Não é com o img. A app fornece o caminho (sPath) até á imagem (o caminho é guardado numa BD)

Não consegui recuperar imagens com o img que não viessem da pasta Images da app.

Posted

O process.start está a ser feito no servidor, nunca vai fazer nada no cliente.

O que pretendes é abrir uma página nova com a imagem, correcto?

Para abrir uma janela nova, terás de usar javascript. Exemplo: Response.Write("<script>window.open('endereço da imagem', '_blank')</script>")

Agora a parte do endereço da imagem.

Podes copiar a imagem para uma pasta dentro da estrutura do site, e naquele endereço usas algo do tipo 'imagens/imagem.jpg'

Se não quiseres copiar, crias uma página que vai servir para mostrar a imagem (showimage.aspx).

No page_load desta página, lês o ficheiro da imagem para um byte[] (exemplo: http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes%28v=vs.110%29.aspx) e usas o Response.BinaryWrite como indiquei anteriormente para enviar a imagem para o browser

Posted

O caminho que estás a usar ali com sPath deve ser do tipo \\servidorxpto\pasta\imagem.jpg, correcto?

Se abrires um browser na mesma rede do servidor e colocares o caminho, vai mostrar a imagem.

Se eu abrir aqui um browser e colocar esse caminho, o que achas que mostra?

Tens de perceber a diferença entre o que é o servidor e o que é o cliente

Quando executas o process.start, estás a executar do lado do servidor. Só ves alguma coisa se tiveres tudo na mesma maquina

Posted

Mas os clientes e o servidor estão na mesma rede. Uma intranet que não sai do mesmo local físico, nem sequer tem acesso à internet. Até o switch no bastidor é o mesmo.

A pasta com as imagens está no mesmo servidor que o iis.

Na minha máquina via Visual Studio a coisa funciona e estamos a falar da mesma pasta que contém as imagens, via iis não mosta. No localhost no próprio servidor também não funciona.

Posted

nelsonr

Já descobri o problema.

A pasta onde estão as imagens, não sendo a pasta Images da webapplication, tem que ser adicionada no iis, ao site respectivo.

Obrigado na mesma por teres tentado ajudar.

Posted

boas já viste as permissões da pasta?

Como estas a desenvolver deves ter o teu user com privilégios sobre a pasta, quando abres pelo browser não é o teu utilizador que está invocar as imagens mas sim o user do IIS.

tens duas opções ou dás privilégios a "todos" para Ler os ficheiros ou mudas as imagens para o servidor do IIS e podes dizer que o user do IIS tem privilégios sobre essa pasta

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.