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!