Ir para conteúdo
  • 0
Jack Oliveira

Puxando arquivo da pasta sem banco de dados

Pergunta

Ola bom dia

estou com um arquivo que fiz quero fazer um download de arquivo que não tem banco de dados mais quero que faz o download quando clica nele

e não esta baixando apenas abre a janela mostrando o arquivo

 

<?php
$pasta = 'backup/';

if(is_dir($pasta))
{
$diretorio = dir($pasta);

while(($arquivo = $diretorio->read()) !== false)
{
echo '<a href='.$pasta.$arquivo.'>'.$arquivo.'</a><br />';
}

$diretorio->close();
}
else
{
echo 'A pasta não existe.';
}
?>

Se puderem me ajudar 

 

se ter como também de fazer uma listagem do que esta dentro da pasta

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostas a esta questão

Recommended Posts

  • 0
Em 04/07/2019 at 10:30, Robson Lopes disse:

echo '<a download href='.$pasta.$arquivo.'>'.$arquivo.'</a><br />';

Coloque o atributo download no link.

 

Ola boa tarde amigo perdoa a demora

eu fiz o que disse ai..

ele quando vai baixar ele da falha não abaixa o arquivo...

Ja tentei 4 vezes fazer o downloads mais não baixa o banco que esta na pasta

Este é o cpanel.php

								<?php if(isset($_GET['ExportaBancoDados'])){ ?>
<?php
	if(isset($_SESSION['msg'])){
		echo "<p>".$_SESSION['msg']."</p>";
	unset($_SESSION['msg']);
}
?>
								<form method="POST" action="processar.php" enctype="multipart/form-data">
							<div class="col-md-12">
										<div class="form-group">
											<center><hr>
												<h2>Exportar Banco de Dados</h2>
												<span><font color="red" size="3">Obs: Não mude os campos, Só se for Exporta de outro banco de dados</font></span>
												<br><br>
											</center>
										</div>
										</div>	
									<div class="col-md-6">
										<div class="form-group">
											<label>Localhost:</label>
								    		<input class="form-control" name="servidor" value="localhost"  readonly>
										</div>
										</div>									
									<div class="col-md-6">
										<div class="form-group">
											<label>Root:</label>
								    		<input class="form-control"  name="usuario" value="jnnews_2019" required>
										</div>
										</div>
									<div class="col-md-6">
										<div class="form-group">
											<label>Senha:</label>
								    		<input class="form-control"  type="password" name="senha" value="XF9PNMw!Ss&dj*!g" required>
										</div>
										</div>
									<div class="col-md-6">
										<div class="form-group">
											<label>Banco de Dados:</label>
								    		<input class="form-control" name="dbname"  value="jnnews_2019" placeholder="Nome da base de dados que deseja baixar" required>
										</div>
										</div>
										<div class="col-md-12">
										<div class="form-group">
											<center><hr>
												<button class="btn btn-primary">Exportar Banco de Dados</button>
												<br><br>
											</center>
										</div>
									</div>
									</form>

 

Este é o arquivo processar.php

<?php
session_start();
ob_start();
//Receber os dados do formulário
$servidor = $_POST['servidor'];
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$dbname = $_POST['dbname'];

//Criar a conexao com BD
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);

//Incluir o arquivo que gerar o backup
include_once("gerar_dados.php");

header("Location: cpanel.php?ExportaBancoDados");
?>

Este é de Gerar Banco de dados gerar_dados.php

<?php

//Ler as tabelas
$result_tabela = "SHOW TABLES";
$resultado_tabela = mysqli_query($conn, $result_tabela);
while($row_tabela = mysqli_fetch_row($resultado_tabela)){
	$tabelas[] = $row_tabela[0];
}
//var_dump($tabelas);

$result = "";
foreach($tabelas as $tabela){
	//Pesquisar o nome das colunas
	$result_colunas = "SELECT * FROM " . $tabela;
	$resultado_colunas = mysqli_query($conn, $result_colunas);
	$num_colunas = mysqli_num_fields($resultado_colunas);
	//echo "Quantidade de colunas na tabela: ". $tabela. " - " . $num_colunas . "<br>";
	
	//Criar a intrução para apagar a tabela caso a mesma exista no BD
	$result .= 'DROP TABLE IF EXISTS '.$tabela.';';
	
	//Pesquisar como a coluna é criada
	$result_cr_col = "SHOW CREATE TABLE " . $tabela;
	$resultado_cr_col = mysqli_query($conn, $result_cr_col);
	$row_cr_col = mysqli_fetch_row($resultado_cr_col);
	//var_dump($row_cr_col);
	$result .= "\n\n" . $row_cr_col[1] . ";\n\n";
	//echo $result;
	
	//Percorrer o array de colunas
	for($i = 0; $i < $num_colunas; $i++){
		//Ler o valor de cada coluna no bando de dados
		while($row_tp_col = mysqli_fetch_row($resultado_colunas)){
			//var_dump($row_tp_col);
			//Criar a intrução da Query para inserir os dados
			$result .= 'INSERT INTO ' . $tabela . ' VALUES(';
			
			//Ler os dados da tabela
			for($j = 0; $j < $num_colunas; $j++){
				//addslashes — Adiciona barras invertidas a uma string
				$row_tp_col[$j] = addslashes($row_tp_col[$j]);
				//str_replace — Substitui todas as ocorrências da string \n pela \\n
				$row_tp_col[$j] = str_replace("\n", "\\n", $row_tp_col[$j]);
				
				if(isset($row_tp_col[$j])){
					if(!empty($row_tp_col[$j])){
						$result .= '"' . $row_tp_col[$j].'"';
					}else{
						$result .= 'NULL';
					}
				}else{
					$result .= 'NULL';
				}
				
				if($j < ($num_colunas - 1)){
					$result .=',';
				}				
			}
			$result .= ");\n";
		}
	}
	$result .= "\n\n";
	//echo $result;
}

//Criar o diretório de backup
$diretorio = 'backup/';
if(!is_dir($diretorio)){
	mkdir($diretorio, 0777, true);
	chmod($diretorio, 0777);
}

//Nome do arquivo de backup
$data = date('d-m-Y-h-i-s');
$nome_arquivo = $diretorio . "NomeDoSite_db_backup_".$data;
//echo $nome_arquivo;

$handle = fopen($nome_arquivo . '.sql', 'w+');
fwrite($handle, $result);
fclose($handle);

//Montagem do link do arquivo
$download = $nome_arquivo . ".sql";

//Adicionar o header para download
if(file_exists($download)){
	header("Pragma: public");
	header("Expires: 0");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: private", false);
	header("Content-Type: application/force-download");
	header("Content-Disposition: attachment; filename=\"" . basename($download) . "\";");
	header("Content-Transfer-Encoding: binary");
	header("Content-Length: " . filesize($download));
	readfile($download);
	
	$_SESSION['msg'] = "<span style='color: green;'>Exportado BD com sucesso</span>";
}else{
	$_SESSION['msg'] = "<span style='color: red;'>Erro ao exportar o BD</span>";
}













Outra coisa como que eu faço para que ele me mostra este bancos que foi baixando em uma lista

EX:

								<div class="table-responsive">
									<table id="DataTable" class="table table-bordered table-striped">
								        <thead>
								            <tr>
								            	<th>Nome do banco</th>
								            	<th>Data</th>
								              	<th>Baixar</th>
								            </tr>
								        </thead>
								        <tbody>

								            <tr>
								              	<td>nome do banco de dados</td>
								              	<td>28/07/2019</td>
									            <td><a download href="./pasta/nome_do_banco_de_dados.sql" class="btn btn-warning"></a>Baixar</td>

								            </tr>
								      
								        </tbody>
								    </table>
								</div>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Kefatif
      Prezados, boa tarde!
       
      Em uma tela faço o envio de arquivos PDF para uma pasta reservada para isso.
       
      Estou tendo dificuldade para criar um botão de download na tela de consultas, quando abro a página de consulta ele está me mostrando a seguinte mensagem: "Notice: Undefined variable: row in C:\xampp\htdocs\plataforma\indicadores\consultar.php on line 126"
       
      Podem me ajudar?
       
      <?php include_once 'autenticacao.php'; include_once'../conexao.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Envio de Ata</title> <link href="../css/estilo.css" rel="stylesheet"> <!-- Bootstrap Core CSS --> <link href="../css/bootstrap.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../css/modern-business.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <script src="../js/jquery.min.js"></script> </head> <body> <?php include_once 'nav-menu1.php'; ?> <!-- Page Content --> <div class="container" style="width: 90%"> <?php include_once 'cabecalho.php'; ?> <div class="row"> <?php include_once 'barra-lateral.php'; ?> <!-- Content Column --> <div class="col-md-9" style="width: 80%"> <h4><b>CONSULTAR UNIDADE</b></h4> <form class="form-inline" action="consultar.php" autocomplete="off" method="get"> <div id="form-callcenter"> <label style="width: 30%"> <input type="text" name="nome" class="form-control" placeholder="Digite o nome da unidade" style="width: 100%"> </label> <input type="submit" readonly value="Pesquisar" class="btn btn-primary"> </div> </form> <?php if (isset($_GET["nome"]) ) { $nome = $_GET["nome"]; include_once '../funcoes.php'; $sql = "select A.dt_envio, A.unidade, A.responsavel, A.observacao, A.anexo from controle_ata A where A.unidade like '%".$nome."%' order by A.dt_envio desc"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { ?> <table class="table table-hover table-bordered" id="tabela-dispensacao2"> <tr> <th>Unidade</th> <th>Data do envio</th> <th>Responsável</th> <th>Observação</th> <th>Ata</th> <th>Download</th> </tr> <?php if($row["anexo"] == ''){ $cor = "red"; }else{ $cor = "blue"; } while ($row = mysqli_fetch_array($result)){ foreach($row as $key => $values){ $row[$key]= utf8_encode($values); } ?> <tr> <td><?php echo $row["unidade"]?></td> <td><?php echo dataTela($row["dt_envio"]); ?></td> <td><?php echo $row["responsavel"]; ?></td> <td><?php echo $row["observacao"] ?></td> <td><?php echo $row["anexo"] ?></td> <td><a class="<?php if($row["ANEXO"] == ''){echo "link-nao-ativo";}?>" href='anexos/<?php echo $row["ANEXO"] ?>' target="_blank"> <i style="color:<?php echo $cor ?>" class="glyphicon glyphicon-download-alt"></i> </a> </td> </tr> <?php }//ENCERRANDO O WHILE ?> </table> <?php }else{ echo "Nenhuma unidade encontrada!<br>"; } } ?> <?php mysqli_close($con); ?> </div> </div> <!-- /.row --> </div> <!-- /.container --> <!-- jQuery --> <script src="../js/jquery.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../js/bootstrap.min.js"></script> </body> </html>  
       
      Agradeço a ajuda desde já!
    • Por LucasLV
      Boa tarde.
      Estou fazendo um script que faz o download de arquivos de acordo com uma referência no bd, para que os usuários não saibam e não tenham acesso ao local original.
      Ele faz o download corretamente, mas na hora de abrir o arquivo ele não abre, aparece que a extensão está incorreta ou o arquivo corrompido.
      Com arquivos PDF ele funciona normalmente, mas testei com arquivos jpg, mp4, zip e rar, e nenhum deles abriu.
       
      Esse é o código que faz o download:
      $r = $con->executar("SELECT `MENSAGENS_COD`,`ARQUIVO` FROM `LINKS_ARQUIVOS` WHERE `REFERENCIA` = ?;",array($_GET['file']),"F"); header('Content-Disposition: attachment; filename=Anexo Mensagem '.$r['MENSAGENS_COD'].'.'.pathinfo($r['ARQUIVO'],PATHINFO_EXTENSION)); header('Content-Type: '.mime_content_type($r['ARQUIVO'])); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.filesize($r['ARQUIVO'])); readfile($r['ARQUIVO']);  
      Pesquisando na internet vi exemplos com o content-type como octet/stream e sem esse contetnt-transfer-encoding, mas fiz testes com essas modificações e não obtive êxito.
      Também vi que quando abro os detalhes do arquivo (imagem) no Windows, o arquivo do servidor exibe as informações corretamente, como largura e altura, já o arquivo baixado não exibe nada.
    • Por Guilherme5889
      Então , eu preciso criar um sistema de download de arquivos em meu site , porém só quero que um certo cargo possa realizar o download, como faço para disponibilizar um arquivo para download sem passar ele para URL por exemplo , e se caso alguém tentar acessar a URL bloquear o download.
    • Por Guilherme Morete Felix
      Olá,
      Estamos upando arquivos em nossa plataforma via moodle, como base de regra, tais arquivos são em formato pdf.
      Temos como objetivo que o aluno apenas abra e visualize o documento, porém não consiga fazer o download, cópia, impressão ou algo no sentido mencionado.
      Caso não seja possível, uma saída secundária seria permitir a impressão dos arquivos com o cpf do aluno e um termo de compromisso como marca d'água.
      Alguém poderia me relatar se essas alternativas são possíveis, quais são as possibilidades e se alguma pessoa pode ajudar nesse aspecto? Desde já, muito obrigado!
    • Por nazesaria
      Ola, gostaria de saber se tem alguma forma de eu baixar essas paginas completa em .php, se eu clico nela vai em uma pagina em branco.
      E acessando direto do site não teria como, gostaria de ser por esse metedo, é possível? Como?
×

Informação importante

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