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

