Já utilizei algo parecido, com a função force_download do helper que Edinho
falou. No meu caso, era somente para verificar se o arquivo que o usuário
estava tentando baixar era dele. Então fiz algo como:

download/arquivo/id_arquivo

Na função, verificava se estava logado e se o arquivo era dele. O id_arquivo
era a chave primaria do banco de dados, com o endereço do arquivo no
servidor. Mesmo sem estar numa pásta acima do public_html, o usuário não
conseguiria pegar o endereço físico. (ou estou enganado?) Pelo menos da
forma convencional ele não conseguiria. Ao acessar essa página, forçava o
download do arquivo.

Vinicius

2009/1/29 Edinho Almeida <[email protected]>

> Também há a opção de salvar o arquivo numa pasta acima do public_html e no
> banco o nome do arquivo.O link contém o id do banco que recuperará o nome
> do arquivo e com o helper download chama-se a função force_download enviando
> o caminho e nome do arquivo, isto depois de verificado captcha ou login
> etc...
>
> Abs
> Edinho Almeida
> 11 8018-8019
>
>
> 2009/1/29 Julio Cesar <[email protected]>
>
> Quanto a mandar o arquivo sem mostrar o endereço físico dele, você deve
>> fazer como o colega falou: "você pega esse conteúdo binário do arquivo e em
>> runtime envia um cabeçalho HTTP com o mime-type correspondente"  desta forma
>> ele não vai dizer o endereço físico, a dica é que você não precisa ter o
>> arquivo salvo no banco, porém você você precisa ter alguma forma de saber
>> qual arquivo que o usuário deseja, mas isto é relativamente fácil utilizando
>> banco de dados, pois você pode disponibilizar um código MD5 digamos que do
>> nome do arquivo, e salvar isso em um registro no BD, e no mesmo registro tu
>> salva outro campo que seria o local físico do arquivo, então a idéia é:
>> quando usuário buscar por tal código, eu procuro no banco a qual arquivo
>> corresponde e envio o cabeçalho....
>> Há outra questão que deve ser avaliada também é que o IE tem um
>> comportamento diferente quando você manda o header de um arquivo, então você
>> terá que utilizar um IF pedidno se for IE então..... se não for IE então
>> ..... Você deve pesquisar mais na net sobre isso. Procure sobre a função
>> header do PHP
>>
>> 2009/1/28 <[email protected]>
>>
>>> Olá Pessoal,
>>>
>>>
>>> Estou com um probleminha. Preciso disponibilizar alguns arquivos para
>>> download, mas só posso liberar o download se a pessoa aceitar o contrato.
>>>
>>> É algo estilo ao MegaUpload ou RapidShare e aquele código que você tem
>>> que digitar.
>>>
>>> Sem digitar o código não se consegue acesso ao arquivo.
>>>
>>> Nem por url completa se consegue fazer o download sem a validação devida.
>>>
>>> Alguém pode ajudar?
>>>
>>> Abraços,
>>>
>>> Hermes Alves
>>> www.espacoilimitado.com.br
>>>
>>>
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a