Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Forçar Download

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Forçar Download

    Ae pessoal.. eu to tentando criar um sistema que armazena algumas informações e junto com ela um arquivo em anexo.. por enquanto está armazenando tudo certo..

    Código:
    if(isset($_FILES["arquivo"])){
    
    			$arquivo = $_FILES["arquivo"];
    			
    			$pasta_dir = "tmp/";
    			if(!file_exists($pasta_dir)){
    			mkdir($pasta_dir);
    			}
    			$arquivo_nome = $pasta_dir . $arquivo["name"];
    			move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);
    			$query = mysql_query("INSERT INTO  `seta`.`erros` (`id` ,`usuario` ,`titulo` ,`natureza` ,`arquivo` ,`unidade` ,`descricao` ,`status` ,`novo` ,`data`)VALUES (NULL ,  '$nome',  '$titulo',  '$natureza',  '$arquivo_nome',  '$unidade',  '$descricao',  'Em Aberto',  '0',  '$data');");
    			if($query){
    				echo "<font size='-1'>Seu Chamado foi enviado com sucesso!</font>";
    			}else{
    				echo "<font size='-1' color='#990000'>Não foi possível Enviar seu Chamado..</font>";
    			}
    			 }else{
    				$query = mysql_query("INSERT INTO  `seta`.`erros` (`id` ,`usuario` ,`titulo` ,`natureza` ,`arquivo` ,`unidade` ,`descricao` ,`status` ,`novo` ,`data`)VALUES (NULL ,  '$nome',  '$titulo',  '$natureza',  '',  '$unidade',  '$descricao',  'Em Aberto',  '0',  '$data');");
    				if($query){
    					echo "<font size='-1'>Seu Chamado foi enviado com sucesso!</font>";
    				}else{
    					echo "<font size='-1' color='#990000'>Não foi possível Enviar seu Chamado..</font>";
    				}
    			}
    Más estou com problemas para fazer forçar o download quando eu quizer baixá-lo..

    Código:
    $query2 = mysql_query("SELECT * FROM erros WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
    	$query3 = mysql_fetch_array($query2);
    		echo $query3['arquivo'];
    Aparecendo o nome do arquivo normal..
    alguém sabe o jeito certo ? vlw

  • Font Size
    #2
    Você apenas deu um echo no nome do arquivo.
    Tente:
    Código PHP:
    $query2 mysql_query("SELECT * FROM erros WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
        
    $query3 mysql_fetch_array($query2);
              
    $arquivo $query3['arquivo'];
              
    header('Content-type: octet/stream'); // aqui está a "mágica"
              
    header('Content-disposition: attachment; filename="'.basename($arquivo).'";');
              
    header('Content-Length: '.filesize($arquivo));
              
    readfile($arquivo);
              exit; 
    Notei que você não valida o tipo do arquivo. Convém validar pela extensão e mime_type.
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

    Comment


    • Font Size
      #3
      o echo foi um teste.. mas acho que devo especificar mesmo.. especificando talvez mude muita coisa vlw :P

      Comment

      X
      Working...
      X