Ir para conteúdo
Fórum Script Brasil
  • 0

ramificação de arquivos


Thelon

Pergunta

Olá Pessoal me pediram para fazer um sistema de ramificação para organização de arquivos para download.

Eu como não fazia idéia descobri um sistema pronto ... Porém ele não faz download apenas visualiza.

Tentei mudar algumas coisas no código mas não de certo.

Segue ele:

<?php

  // Sistema para Listar Diretórios e Arquivos
  // GNU Public License - 2004-11-07 | 07/11/2004
  // http://www.gnu.org/philosophy/free-sw.html
  // Klaus Roberto de Paiva - klausphp@gmail.com

  // Defina aqui o diretório a ser listado!
  // Use definição relativa não absoluta!
  // Certo: "../Pasta"
  // Errado: "http://www.meusite.com.br/Pasta"
  // Não coloque / no final da pasta!
  define ("Diretorio", ".../downloads");

?>

<style type="text/css">

  body {
  
    font: 10pt verdana;
  
  }
  
  a:link, a:visited {
  
    color: #000000;
    text-decoration: none;
  
  }
  
  a:hover, a:active {

    font-weight: bold;
  
  }

</style>

<script language="javascript" type="text/javascript">

  function expandirContrair (qual) {
  
    var pasta = document.getElementById(qual);
    
    if (pasta.style.display == "none") {
    
      pasta.style.display = "";
      
    }
    
    else {
    
      pasta.style.display = "none";
    
    }
  
  }

</script>

<?php

  function exibeEstrutura ($pasta, $acima, $caminho, $nivel = 0) {
  
    $arquivos = null;
    
    $id = md5 (microtime());
    
    $mostrar = ($nivel == 0) ? "" : " style=\"display: none;\"";
    
    echo "";
  
    if (!is_dir ($pasta)) :
    
      echo "$pasta não é uma pasta válida e/ou acessível!";
    
    endif;
    
    chdir ($pasta);
    
    $eval = dir ("./");
    
    $atual = getcwd();
    
    echo str_repeat ("&nbsp;", ($nivel * 5));
    
    echo "<a href=\"java script:expandirContrair ('$id');\"><img src=\"pastas.gif\" border=\"0\" alt=\"\" width=\"17\" height=\"14\" align=\"absmiddle\" /> ";
    echo  ($nivel == 0) ? $atual : $pasta;
    echo "</a><br /><div id=\"$id\"$mostrar>\n\n\n";
    
    while (($itens = $eval->read()) !== false) :
    
      if (($itens == ".") or ($itens == "..")) :
      
        continue;
      
      endif;
      
      if (is_dir ($itens)) :
      
        exibeEstrutura ($itens, $atual, $caminho . "/" . $itens, ($nivel + 1));
        
      else :
      
        $arquivos .= str_repeat ("&nbsp;", (($nivel + 1) * 5));
        
        $extra = ($nivel != 0) ? $pasta . "/" : "";
    
        $arquivos .=  "$itens <a href=\"$caminho/$itens\"><img src=\"visualizar.gif\" border=\"0\" alt=\"\" title=\"Visualizar este arquivo!\" width=\"14\" height=\"14\" align=\"absmiddle\" /></a> <a href=\"apagar.php?source=" . base64_encode ($caminho . "/" . $itens) . "\"><img src=\"apagar.gif\" border=\"0\" alt=\"\" title=\"Apagar este arquivo!\" width=\"14\" height=\"14\" align=\"absmiddle\" /></a><br />\n";
        
      endif;
    
    endwhile;
    
    chdir ($acima);
    
    echo $arquivos;
    
    echo "</div>\n\n";
  
  }
  
  exibeEstrutura (Diretorio, Diretorio, Diretorio);

?>
Arquivo de exclusão que na verdade não ta fazendo nada:
<style type="text/css">

  body {
  
    font: 10pt verdana;
  
  }

</style>

<p>Este arquivo iria apagar o arquivo especificado. Para evitar erros de sua parte, rs, eu não implementei a função de exclusão do arquivo nesta página. Implemente-a você mesmo. Use a função unlink do PHP!</p>

<p><?php

  echo (empty ($_GET["source"])) ? "Você deve especificar um arquivo para exclusão!" : "O arquivo excluído seria: " . base64_decode (@$_GET["source"]). "!";

?></p>

Alguém pode me ajudar ?!

Obrigado :)

Obs: Se alguém se interessar por eles estou fazendo o upload ... Créditos: http://forum.wmonline.com.br/index.php?showtopic=95543

listarDiretoriosArquivos.rar

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Pelo que entendi você esta querendo forçar que o browser baixe o arquivo independente da sua extensão, para isso você deve mudar o cabeçalho do mesmo para que o browser automaticamente abra a caixa de download:

1. Crie um novo arquivo down.php com a seguinte modificação no head

$path = $_GET['path'];
header("Content-Type: application/save") 
header("Content-Length:".filesize($path)); 
header('Content-Disposition: attachment; filename="' . $path . '"'); 
header("Content-Transfer-Encoding: binary");
2. No seu arquivo de listagem adicione o link para <a href="down.php?path=$caminho/$itens\"> Para deletar é como o cara falou...
unlink($caminho/$itens\);

Link para o comentário
Compartilhar em outros sites

  • 0

Opa deu meio que certo Norivan

no Firefox ele abre a janela de download mas não inicia e no IE nem aparece a tela.

To tentando descobrir por que mas não to conseguindo

Detalhe caso mais alguém precise estava faltando um ";" na segunda linha.

$path = $_GET['path'];
header("Content-Type: application/save");
header("Content-Length:".filesize($path));
header('Content-Disposition: attachment; filename="' . $path . '"');
header("Content-Transfer-Encoding: binary");

Obrigado pela ajuda :)

Edit:

Reparei que as vezes ele faz download mas o arquivo vem em branco e o nome do arquivo vem com o caminho inteiro: _downloads_escola_dominical_classe_adolescentes_aula_upa_criacionismo_01

To perdido :/

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...