Ir para conteúdo
Fórum Script Brasil
  • 0

Download sem path


Guest --Marcio --

Pergunta

Guest --Marcio --

Estou fazendo um site onde haverá uma área de downloads.

Suponde que um determinado arquivo tenha o seguinte caminho:

http://www.meusite.com.br/arquivos/umarquivo.pdf

Quando um visitante for fazer o download de "umarquivo.pdf" como posso fazer apra esconder a localização desse arquivo? ou seja, impedir que ele saiba que "umarquivo.pdf" está na pasta "arquivos".

O meu problema é que a área de downloads é restrita, então eu quero evitar que uma pessoa cadastrada passe o caminho do arquivo para outras pessoas não cadastradas baixarem.

Valeu

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Guest --Flasker --

Ei companheiro é o seguinte

se tu keres meter o download limitado... so para as pessoas cadastradas tu fazes o seguinte... tu crias um sistema de login e em cada pagina tu metes um verificar se existe login feito... se ele não exister tu fazes um header("location:paginadesejada.php");

. percebeu

o melhor para ixto e a linguagem programa a objectos em php ke e uma maravilha...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Marcio --

Eu já faço com o header("Location:").

Até aí beleza, o usuário não consegue ver no link o endereço do arquivo e também só consegue acessar essa página se estiver logado.

O problema é que quando o usuário faz o download o navegador informa né de onde o arquivo está vindo e é isso que eu quero evitar.

Link para o comentário
Compartilhar em outros sites

  • 0

Só que com JS 'puro' a pessoa pode ler o JS e descobrir o diretório...

Acho que o modo mais simples é incumbir um script de forçar o download, como por exemplo esse, ai no caso você pode criar um lista no BD com todos os download, e ai simplesmente coloca o link download.php?id=XXX

Onde XXX é a chave primária que contêm os dados do download (no caso, onde ele está no servidor)... inclusive você pode colocar os arquivos fora da área de acesso pelo navegador assim você garante que a menos que a pessoa tenha acesso ao FTP, ela não vai conseguir colocar um link direto para o arquivo...

Link para o comentário
Compartilhar em outros sites

  • 0

<?php

$filepath = "D:\www\public_html\pal.swf";

$filename = "pal.swf";

$total = filesize($filepath);

$blocksize = (2 << 20); //2M chunks

$sent = 0;

$handle = fopen($filepath, "r");

// Push headers that tell what kind of file is coming down the pike

header('Content-type: '.$content_type);

header('Content-Disposition: attachment; filename='.$filename);

header('Content-length: '.$filesize * 1024);

// Now we need to loop through the file and echo out chunks of file data

// Dumping the whole file fails at > 30M!

while($sent < $total){

echo fread($handle, $blocksize);

$sent += $blocksize;

}

exit(0);

?>

tu desta maneira n existe maneira kualker de descobrir o endereço...........

-----

tu tens de ir buscar o nome do ficheiro a base de dados.... tipo quando fazes 1 botao para o download ele manda o id do ficheiro e depois vais buscar o endereço do do ficheiro a base de dados

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Marcio --

Ai galera,

Valeu pela ajuda.

Realmente o Flasker tem razão.

A melhor forma é usar o header attachment - header('Content-Disposition: attachment; filename='.$filename);

A única coisa que estava me impedindo de fazer isso é que esse método necessita do Mime Type do arquivo e o servidor onde estou hospedado não me disponibiliza a dll PECL que tem as funções finfo.

Como todos os arquivos que serão disponibilizados para download terão que ser colocados no servidor via php também, vou gravar os mime types no banco de dados junto como caminho do arquivo.

Pronto.. problema resolvido.. Valeu mesmo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...