![]() |
||||||||
|
|
||||||||


| com exemplos em VB |
| Componente para deixar forms em Vb semelhantes às telas do winnamp |
| Componente para colocar sua aplicação VB no Systray |
| Componente para transformar sua aplicação VB em serviço |
| Ferramentas úteis para quem usa Olap Server |
| |

|
||||||||||||||||||||||||||||||||
Pesquisa personalizada
Quer
saber mais?
Não deixe escapar essa oportunidade! Faça um treinamento para Webdeveloper na Búfalo Informática Controlando o download de arquivos
O primeiro problema a resolver é o fato de que, sabendo o nome e onde o arquivo está qualquer um pode digitar o caminho na URL e realizar o download. Para resolver este problema é necessário que os arquivos estejam localizados fora do compartilhamento web, ou seja, em uma pasta do HD não acessível via HTTP. Mas então ficamos em um dilema : Se os arquivos estarão em uma pasta não acessível via web, como o arquivo será downloadeado ? Uma página ASP, desde que tenha permissão, pode acessar arquivos em qualquer parte do HD e entrega-los ao usuário. Desta forma podemos criar uma página ASP para provocar o processo de download, mesmo com os arquivos estando inacessíveis diretamente ao usuário. Isso nos permite também realizar outros controles úteis nesta página ASP tais como : Controle de login (apenas usuários autorizados podem fazer o download) e contagem de download, quantos downloads foram feitos e por quem. Primeiramente precisamos nos preocupar em fazer uma lista dos arquivos disponíveis para downloadear. Claro que podemos fazer uma lista estática, seria bem simples. Lista.asp chamaria, de forma estática, o arquivo download.asp, passando como parâmetro o nome do arquivo a ser downloadeado. Mas o mais interessante é criar uma lista dinâmica. Para isso podemos utilizar os recursos do filesystemobject para listarmos todos os arquivos de uma determinada pasta e assim criarmos um sistema dinâmico de download, que nos permite disponibilizar arquivos simplesmente adicionando-os na pasta correta. Já fizemos anteriormente um artigo sobre o filesystemobject, ele se encontra em http://www.bufaloinfo.com.br/Artigos/artigo1102.asp, portanto o código para exibir todo o conteúdo de uma pasta não é uma grande novidade. Veja o código do Lista.asp :
a) Precisamos garantir a abertura do arquivo de forma binária, caso contrário alguns downloads não funcionarão. Para fazermos isso podemos utilizar o objeto ADODB.STREAM, adicionado na biblioteca do ADO a partir de sua versão 2.5 b) Nem todo arquivo pode ser disponibilizado através de response.write. Alguns arquivos não-texto exigem que seja utilizado o response.BinaryWrite. c) O browser tenta reconhecer o tipo de arquivo e pode tentar abri-lo automaticamente. Para evitarmos isso devemos enviar para o browser um cabeçalho indicando que o arquivo deve ser downloadeado, não aberto. d) Ao tentar downloadear o arquivo o browser tentará grava-lo com o nome da página ASP. O mesmo cabeçalho que mencionamos acima pode ser utilizado também para determinar com que nome desejamos gravar o arquivo na máquina do usuário.
A) Testar o login do usuário, garantindo que o usuário encontra-se logado B) Registrar o arquivo que foi downloadeado
O registro no banco e o teste de login é apenas exemplo, que você pode personalizar. O importante neste cõdigo é a forma de fazer a leitura e escrita binária do arquivo e forçar o download através do AddHeader. Dennes
Torres
|
||||||||||||||||||||||||||||||||
|
Veja abaixo os comentários já enviados :
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Quer
saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e Prepare-se para o Mercado! Veja o que a Búfalo tem para você. |
||||||||||||||||||||||||||||||||
© Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail: contato@bufaloinfo.com.br