Crash® 0 Denunciar post Postado Novembro 24, 2009 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.txtSó 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
Marcelo de Andrade 2 Denunciar post Postado Novembro 24, 2009 O erro informa que o arquivo não foi encontrado... o caminho até o arquivo está certo ? Compartilhar este post Link para o post Compartilhar em outros sites
Crash® 0 Denunciar post Postado Novembro 24, 2009 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
Marcelo de Andrade 2 Denunciar post Postado Novembro 24, 2009 A primeira coisa que vi agora é isso aqui : $dir = "$path$id_dir"; a concatenação está errada, seria o certo assim : $dir = $path.$id_dir; Compartilhar este post Link para o post Compartilhar em outros sites
Crash® 0 Denunciar post Postado Novembro 24, 2009 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
Marcelo de Andrade 2 Denunciar post Postado Novembro 24, 2009 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
Crash® 0 Denunciar post Postado Novembro 24, 2009 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
Marcelo de Andrade 2 Denunciar post Postado Novembro 24, 2009 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
Crash® 0 Denunciar post Postado Novembro 24, 2009 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
Marcelo de Andrade 2 Denunciar post Postado Novembro 24, 2009 Relaxe... quais os códigos que fazem parte desse script ? posta os arquivos que a gente da uma olhada ;] Compartilhar este post Link para o post Compartilhar em outros sites
Crash® 0 Denunciar post Postado Novembro 24, 2009 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
Matias Rezende 50 Denunciar post Postado Novembro 27, 2009 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
Crash® 0 Denunciar post Postado Dezembro 2, 2009 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