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
(~14 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
(~14 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
(~14 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
(~14 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
(~14 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.)