Baixar arquivos de uma pasta não pública
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:
o link para acesso é www.zedomingues.com/teste
como posso solucionar o caso?
obrigado
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
comentários (0)
suspender
Lista de Respostas:
18/11/2010 7:49pm
(~14 anos atrás)
(~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.
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.
19/11/2010 1:54pm
(~14 anos atrás)
(~14 anos atrás)
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...
essa pasta a onde estão os arquivos só é acessível mandando o caminho físico dela...
19/11/2010 5:44pm
(~14 anos atrás)
(~14 anos atrás)
Como assim ela não é pública???
Você teria problemas, se este diretório fosse protegido por senha.
Você teria problemas, se este diretório fosse protegido por senha.
22/11/2010 4:05pm
(~14 anos atrás)
(~14 anos atrás)
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)
abraços
podem fechar (se existir essa possibilidade)
28/11/2010 4:16pm
(~14 anos atrás)
(~14 anos atrás)
Jose, vc poderia postar a sua solucao para que outros usuarios que tiverem algum problema semelhante pudessem ter uma ideia...
03/03/2015 3:19pm
(~9 anos atrás)
(~9 anos atrás)
José, como você resolveu? Estou com a mesma situação e não consegui achar uma solução ainda!