Olá caro(a) leitor(a), hoje eu vou mostrar como trabalhar com arquivo PDF no site escondendo o endereço na URL do site. As vezes você quer compartilhar algum documento em PDF mas não quer mostrar o endereço direto, para isso, é necessário escrever poucas linhas na linguagem C#. Veja o que utilizei para fazer.
Utilizado:
- Ferramenta Visual Studio
- Linguagem C#
- Plataforma ASP.NET
- Importei: System.Net.WebClient e System.Byte
Em alguns casos não precisa importar as classes, cada um analise da melhor maneira. Qualquer dúvida, pode enviar e-mail.
Codificação
Eu tenho um exemplo funcionando hoje em dia para que possa analisar, está no site www.ecode10.com, basta clicar em qualquer revista publicada no site. Depois de importar as classes necessárias, comecei a escrever o código abaixo:
Código 1 - Não mostrando o PDF
string pdfPath = "endereco_do_pdf";
if (pdfPath.IndexOf(".pdf") > 1)
{
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(pdfPath);
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
else
{
Response.Redirect(pdfPath);
}
Explicação do código
A primeira é apenas o endereço do arquivo PDF no servidor ou no seu site. Pode ser um endereço com www ou ip sem qualquer problema. O que você precisa entender é que o site tem que ter acesso a esse arquivo.
A segunda linha verifica se existe algum nome .pdf no endereço do arquivo. Se houver, então ele é maior que 1.
O WebClient é responsável por fazer download do arquivo pelo método DownloadData e o retorno dele é um buffer em formato Array. A resposta precisa ser referenciada como application/pdf indicando ao browser que o arquivo é PDF.
É necessário passar a quantidade do conteúdo para o cabeçalho através do AddHeader e para finalizar, é necessário escrever pelo método BinaryWrite passando o buffer como parâmetro.
Se não houver nada de .pdf no endereço do arquivo, nesse caso o código redireciona para o endereço do arquivo. É bem simples e fácil. Como exemplo eu deixo o endereço http://www.ecode10.com/counter/?desc=540 para verificar.
Espero que tenha gostado e qualquer dúvida favor entrar em contato pelo site www.mauriciojunior.org.