0

Baixar arquivos de uma pasta não pública

criado por José Domingues em 18/11/2010 7:28pm
Olá, estou tendo problemas com o uso de um script para listar e baixar arquivos numa pasta que não é acessível publicamente do meu site.
ex:
uso locaweb como hospedagem e ela disponibiliza 2 pastas no diretório raiz (web - dando acesso via link http - e a dados - que só pode ser aberta via caminho físico, não liberada para acesso via links)

o script que eu estou usando consiste em ir para a pasta (chdir), listar os arquivos lá existentes e disponibilizá-los com uma link para downloads.

o problema está na hora do download, clico no link que o script gera e aparece o erro "Não é possível localizar a página da Web" - lógico o arquivo não existe naquela pasta onde está o index com o script.

o script que estou usando é esse:

<html> 
<head> 
   <title>test</title> 
</head> 
<body> 
<table width="50%" border="0" align="center"> 
        <tr bgcolor="#CCCCCC"> 
                <td width="60%"> 
                        <div align="center"> 
                                <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Arquivo</font> 
                        </div> 
                </td> 
                <td width="40%"> 
                        <div align="center"> 
                                <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Data de Upload</font> 
                        </div> 
                </td> 
        </tr> 
        <?php 
chdir('e:\home\tecidosantapaula\dados\teste');
                if ($handle=opendir(".")) { 
                        $x=0; 
                        while (false !== ($file=readdir($handle))) { 
                                if ($file!="index.php" && $file!=".."){ 
                                        $matrix[$x]=$file; 
                                        $x++; 
                                } 
                         } 
                         closedir($handle); 
                         $x=0; 
                         foreach ($matrix as $file){ 
                                if(is_file($file)){ 
                                } 
                                if($x % 2 == 0){ 
                                        print(" <tr bgcolor=\"#FFFFCC\">\n"); 
                                }else{ 
                                        print(" <tr bgcolor=\"#FFFF99\">\n"); 
                                } 
                                $ftime = date("d/m/Y - H:i", filemtime($file)); 
                                print("         <td>\n"); 
                print("                 <font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"$file\">$file</a></font>\n" 
); 
                                print("         </td>\n"); 
                                print("         <td align=\"center\" >\n");                              
                                print("                 <font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$ftime</font>"); 
                                print("         </td>\n");                               
                                print("</tr>\n"); 
                                $x++; 
                         } 
                }        
        ?> 
</table> 
</body> 
</html>

o link para acesso é www.zedomingues.com/teste

como posso solucionar o caso?
obrigado

Lista de Respostas:

0
18/11/2010 7:49pm
(~13 anos atrás)
Você precisa determinar qual é o diretório do arquivo.
Se o código está em um diretório, e os arquivos estão em outro, então você precisa mostrar o caminho completo para que o navegador entenda aonde ele deve ir buscar tal arquivo...
Você está misturando a ideia do PHP com o HTML.
O PHP roda e entende, pois você programou certinho. Porém, o PHP encerra e o HTML roda na parte do cliente. O Navegador interpreta o HTML. E quando o usuário clica no link, o navegador vai atras do arquivo.
E por isso não está encontrando.

0
19/11/2010 1:54pm
(~13 anos atrás)
José Domingues respondeu:
tudo bem, mas como direcionar o html para uma pasta que não é pública?
essa pasta a onde estão os arquivos só é acessível mandando o caminho físico dela...

0
19/11/2010 5:44pm
(~13 anos atrás)
Como assim ela não é pública???
Você teria problemas, se este diretório fosse protegido por senha.

0
22/11/2010 4:05pm
(~13 anos atrás)
José Domingues respondeu:
A pasta não é acessível via URL....mais já resolvi o problema...agradeço a atenção!
abraços
podem fechar (se existir essa possibilidade)

0
28/11/2010 4:16pm
(~13 anos atrás)
BOZO respondeu:
Jose, vc poderia postar a sua solucao para que outros usuarios que tiverem algum problema semelhante pudessem ter uma ideia...

0
03/03/2015 3:19pm
(~9 anos atrás)
Freddy Silva Gale respondeu:
José, como você resolveu? Estou com a mesma situação e não consegui achar uma solução ainda!

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)