Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Crash®

[Resolvido] Erro script gerenciar arquivo downloads

Recommended Posts

Salve comunidade !!

 

Tenho uma seção em meu site que é para baixar algum material que irei disponibilizar para meus visitantes.

Até ai Ok .. no entanto quando clico no arquivo que vai ser baixdo recebo a seguinte mensagem:

Estou usando um script que mostra o conteudo do diretório e o visitante clicando nele faz o download do mesmo para seu computador porem até o ponto de mostrar o conteudo Ok so que na hora que clica no arquivo para baixar ...

The requested URL /servico/painel/download/down/Modelos/Modelos/modelo.txt was not found on this server.

 

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

 

 

--------------------------------------------------------------------------------

 

Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 Server at Port 80

 

O caminho seria teria que ser: /servico/painel/download/down/Modelos/modelo.txt

Só que esta aparecendo duas vezes o item "Modelos", que na verdade é a pasta onde esta o arquivo a ser baixado.

 

Estou usando o seguinte script;

<?php
      
      if($sb == '1'){
          $dir = "$path$id_dir";
        echo "$dir";
    }
        else
$dir = getenv('DOCUMENT_ROOT')."/servico/painel/download/down/" .$_GET['id_dir']. "/";

function varre($dir,$filtro="",$nivel="")
{
    $diraberto = opendir($dir); 
    chdir($dir); 
    while($arq = readdir($diraberto)) { 
        if($arq == ".." || $arq == ".")continue; 
        $arr_ext = explode(";",$filtro);
        foreach($arr_ext as $ext) {
            $vdir = getcwd();
            $exdir = explode("/", $vdir);
            
            $fdir = end($exdir);
        if(count($exdir)==9) {
                $fdir = $exdir[7]. "/" .$exdir[8];
            }else{
                $fdir = end($exdir);
            }
        
            $extpos = (strtolower(substr($arq,strlen($arq)-strlen($ext)))) == strtolower($ext);
           if ($extpos == strlen($arq) and is_file($arq)) 
                if(count($exdir)==7){
                print $nivel."<img src=servico/painel/download/ok.gif width=\"13\" height=\"11\"><B><a href='/servico/painel/download/down" .$_GET['id_dir']. "/" .$arq. "'> $arq</a> </B><br>";

            }else
    
                print $nivel."<img src=\"ok.gif\" width=\"13\" height=\"11\"><B><a href='/servico/painel/download/down/" .$_GET['id_dir']. "/" .$fdir. "/" .$arq. "'> $arq</a> </B><br>";

        }
        
        if (is_dir($arq)) {

            print "<P>";
            print $nivel.$arq."<br>"; 
            varre($arq,$filtro,$nivel."    "); 
        }
    }
    chdir(".."); 
    closedir($diraberto); 
}

?>
<? varre("$dir");  
?>
Alguém pode me dar uma ajuda já que não manjo de PHP estou quebrando a cabeça a beça com isto ..

 

Muto obrigado de ante mão e um forte abraço a todos !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo na estrutura de pastas esta exatamente assim:

raiz domeu site/servico/painel/download/down/

 

E em seguida tenho algumas pastas separando os arquivos até a visualização do conteudo de cada pasta ok eu vejo de boa os aruivos a serem baixados só quando clico em algum para baixar é que da esta mensagem que postei logo acima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Marcelo Obrigado por me rsponder..

esta alteração acabei de fazer mas a questão continua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim :

<?php 

     if($sb == 1){ 
         $dir = $path.$id_dir; 
      } else {
         $dir = $_SERVER['DOCUMENT_ROOT']."/servico/painel/download/down/" .$_GET['id_dir']. "/"; 
      }

function varre($dir,$filtro="",$nivel="") 
{ 
   $diraberto = opendir($dir);  
   chdir($dir);  
   while($arq = readdir($diraberto)) {  
       if($arq == ".." || $arq == ".")continue;  
       $arr_ext = explode(";",$filtro); 
       foreach($arr_ext as $ext) { 
           $vdir = getcwd(); 
           $exdir = explode("/", $vdir); 

           $fdir = end($exdir); 
       if(count($exdir)==9) { 
               $fdir = $exdir[7]. "/" .$exdir[8]; 
           }else{ 
               $fdir = end($exdir); 
           } 

           $extpos = (strtolower(substr($arq,strlen($arq)-strlen($ext)))) == strtolower($ext); 
          if ($extpos == strlen($arq) and is_file($arq))  
               if(count($exdir)==7){ 
               print $nivel."<img src=servico/painel/download/ok.gif width=\"13\" height=\"11\"><B><a href='/servico/painel/download/down" .$_GET['id_dir']. "/" .$arq. "'> $arq</a> </B><br>"; 

           }else 

               print $nivel."<img src=\"ok.gif\" width=\"13\" height=\"11\"><B><a href='/servico/painel/download/down/" .$_GET['id_dir']. "/" .$fdir. "/" .$arq. "'> $arq</a> </B><br>"; 

       } 

       if (is_dir($arq)) { 

           print "<P>"; 
           print $nivel.$arq."<br>";  
           varre($arq,$filtro,$nivel."    ");  
       } 
   } 
   chdir("..");  
   closedir($diraberto);  
} 

?> 
<? varre("$dir");   
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de testar ...

porem continua o erro

 

o estranho é que na barra de endereço aparece assim:

www.meusite.com.br/servico/painel/download/down/Modelos/Modelos/modelo.txt

 

Que na verdade teria que ser assim

www.meusite.com.br/servico/painel/download/down/Modelos/modelo.txt

 

Ai eu teste da seguine forma direto na barra de endereço apaguei /Modelos/ e deixei apenas como no exemplo acima ai sim funciona..

 

Ou seja pelo visto oproblema é que o script esta acrecentando /Modelos/ a mais ...só que eu não sei onde no script posso arrumar isto ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como que você esta recebendo as variaveis $path e $_GET["id_dir"] ?

 

     if($sb == 1){  
         $dir = $path.$id_dir;  
      } else { 
         $dir = $_SERVER['DOCUMENT_ROOT']."/servico/painel/download/down/" .$_GET['id_dir']. "/";  
      } 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo me perdoa .. mas sou burro não manjo de programar estou começando a estudar php agora .. estou mais perdido que sego em tiroteio ..

 

Eu peguei este script na net e montei de acordo com o tuto .. mas fiz besteira em algum lugar e não to conseguindo arrumar de maneira nenhuma..

 

obrigado pela sua ajuda mesmo cara..

 

não sei como ver o que você me perguntou ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar o conteudo completo exatamente como peguei na net;

Seria assim;

1 - Pasta download e dentro dela tenho:

2 - Uma pasta down - onde crio as outras pastas para guardar os arquivos a serem baixados ou acessados

a)abre_pasta.php

<td width="49%">Bem vindo</td>
    <td width="1%"> </td>
    <td width="32%"><div align="center"><a href="/servico/painel/downloads.php?id=<? print $_SESSION['id'];?>">selecionar nova 
        pasta</a></div></td> 
    <td width="18%"><div align="center"><a href="/servico/painel/logout.php">fechar sessão</a></div></td>
  </tr>
  <tr> 
    <td colspan="4">Você selecionou a pasta <B><font color='#990000'><? print $_GET['id_dir'];?></font></B><BR>
    Abaixo encontra-se os arquivos disponíveis para download.
      <P></td>
  </tr>
  <tr> 
    <td colspan="3"><P>
      <?php
	  
	  if($sb == '1'){
	  	$dir = $path.$id_dir;
		echo "$dir";
	}
		else
$dir = getenv('DOCUMENT_ROOT')."/servico/painel/download/down/" .$_GET['id_dir']. "/";

function varre($dir,$filtro="",$nivel="")
{
    $diraberto = opendir($dir); 
    chdir($dir); 
    while($arq = readdir($diraberto)) { 
        if($arq == ".." || $arq == ".")continue; 
        $arr_ext = explode(";",$filtro);
        foreach($arr_ext as $ext) {
			$vdir = getcwd();
			$exdir = explode("/", $vdir);
			
			$fdir = end($exdir);
		if(count($exdir)==9) {
				$fdir = $exdir[7]. "/" .$exdir[8];
			}else{
				$fdir = end($exdir);
			}
		
            $extpos = (strtolower(substr($arq,strlen($arq)-strlen($ext)))) == strtolower($ext);
           if ($extpos == strlen($arq) and is_file($arq)) 
				if(count($exdir)==7){
				print $nivel."<img src=servico/painel/download/ok.gif width=\"13\" height=\"11\"><B><a href='down/" .$_GET['id_dir']. "" .$arq. "'> $arq</a> </B><br>";
			}else
	
		        print $nivel."<img src=\"ok.gif\" width=\"13\" height=\"11\"><B><a href='down/" .$_GET['id_dir']. "/" .$fdir. "/" .$arq. "'> $arq</a> </B><br>";

        }
		
        if (is_dir($arq)) {

			print "<P>";
			print $nivel.$arq."<br>"; 
            varre($arq,$filtro,$nivel."    "); 
        }
    }
    chdir(".."); 
    closedir($diraberto); 
}

?>
<? varre("$dir");  ?>
b)downloads.php

<td width="81%">Bem vindo</td>
    <td width="19%"><div align="center"><a href="logout.php">fechar sessão</a></div></td>
  </tr>
  <tr> 
    <td colspan="2">Selecione no menu abaixo qual o diretorio deseja entrar para 
      efetuar download de arquivos:</td>
  </tr>
  <tr> 
    <td colspan="2" class="td2"> 
      <?php 
$dir = getenv('DOCUMENT_ROOT'). "/servico/painel/download/down/";

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
			print "<div class='td2'><img src=iconex.gif width=\"15\" height=\"16\"> - <a href='/servico/painel/download/abre_pasta.php?id_dir=$file&id=" .$_SESSION['id']. "'> $file</a></div><br>";
        }
    }
    closedir($handle);
}

?>
    </td>
  </tr>
</table>
c)logout.php

<?php
session_start();

unset($_SESSION[id]);
unset($_SESSION[nome]);

Header("Location: ../servico/painel/login.php");
?>
d)teste.php

<?php

			$vdir = getcwd();
			$exdir = explode("/", $vdir);
			$fdir = end($exdir);
			
			print $vdir."<P>";
			print $fdir."<BR>";
			print count($exdir)
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte. No início do arquivo abre_pasta.php, você adiciona o seguinte código:

echo 'O valor de $_GET[\'id_dir\'] é '.$_GET['id_dir'];

Poste aqui a mensagem que apareceu. Além disto, qual a página que gera o link para baixar o arquivo?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera me desculpe pela demora em postar o resultado

 

Recebi a ajuda do amigo; Paulo André do forum : Webmasters

 

E esta resolvido caso alguem queira ver acima deixo o link para ver o que foi feito para resolver a questão

 

Amigo Matias Rezende Muito obrigado pela atenção !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.