Jump to content
  • 0
Jack Oliveira

Puxando arquivo da pasta sem banco de dados

Question

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

Share this post


Link to post
Share on other sites

2 answers to this question

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>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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!
    • By 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?
    • By macdor300a
      Boa Noite a todos, desenvolvi varios projetos em Delphi 7 a ultima versão que estava acostumado,  apos ter abandonado a area por mais de 15 anos. hoje estou voltando a mexer em algumas coisas estou criando um webbrowser mobile android com o berlim, e com uma finalidade especifica.

      Ate ai tudo certo, pois estar tudo funcionando da maneira que desejava, porem; quando acesso uma area de download da pagina que criei e clico no botao para descarregar o PDF simplismente o download não inicia e simplesmente nao faz nada. alguem poderia min dar uma dica de como proceder pois estou min reindetificando novamente com o Delphi apos todos esses anos e sem contar que estar tudo diferente no berlim
    • By macdor300a
      Boa Noite a todos, programei por vários anos no Delphi, a ultima versão que estava acostumado era o 7. apos ter abandonado a area por mais de 15 anos. hoje estou voltando a mexer em algumas coisas estou criando um webbrowser mobile android com o berlim, e com uma finalidade especifica. 
      Ate ai tudo certo, pois estar tudo funcionando da maneira que desejava, porem; quando acesso uma area de download da pagina que criei e clico no botao para descarregar o PDF simplismente o download não inicia e simplesmente nao faz nada.   alguem poderia min dar uma dica de como proceder pois estou min reindetificando novamente com o Delphi apos todos esses anos e sem contar que estar tudo diferente no berlim 
    • By DanielF
      Pessoal Eu Recentemente estava fazendo um gerador de qr-code, e preciso criar um botão que quando a pessoa clique apareça para poder baixar/fazerdownload da imagem gerada, pode me ajuda? to preso nisso faz tempo, e se puderem podem Organizar o codigo para mim? 
       
       
       
       
       
       
       
      <!DOCTYPE html>
      <html>
      <head>
          <title>QR-Code</title>
          <style type="text/css">
              #qrcode {
                  border: 1pt solid gray;
                  display: inline-block;
              }
          </style>
      </head>
      <body>
          <center>
              <input type="text" name="qrtexto" id="qrtexto" onkeypress="gerarqr();" onkeyup="gerarqr();"><br>
              <br>
              <button onclick="gerarqr();" on>Gerar</button>
              <button onclick="limpar();" on>Limpar</button>
          </center>
          <br>
          <br>
      <center>
          <div id="qrcode"></div>
      </center>
      <br>
      <center>
      <button onclick="baixar();">Baixar (Em Breve)</button>
      </center>
      <script src="qrcode.min.js"></script>
      <script>
          qrcode.innerHTML="<img src='limpo.png'>";
          function gerarqr(){
      var qrcode=document.getElementById('qrcode');
      qrcode.innerHTML=" ";
      var texto=document.getElementById("qrtexto").value;
          var qrcodee = new QRCode(qrcode, {
          text: texto,
          width: 300,
          height: 300,
          colorDark : "#000000",
          colorLight : "#ffffff",
          correctLevel : QRCode.CorrectLevel.H
      });
      }
      function limpar(){
      qrcode.innerHTML="<img src='limpo.png'>";
      }
      function baixar() {
      }
      </script><br><br><br><br><br><br><br>
      <h6 align="center">Feito por Itz_Topz</h6>
      </body>
      </html>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.