XsTeAl Posted April 5, 2012 at 11:23 AM Report #447711 Posted April 5, 2012 at 11:23 AM Boas, preciso que ao clicar num link me force o download da imagem comecei a fazer mas ao invés de fazer o donwload da imagem, faz o download de um ficheiro em php com 0 bytes, tenho o seguinte código: function forcar($nome, $galeria){ $local = './ckfinder/userfiles/galeria/'.$galeria.'/'.$nome; if(!file_exists($local)){ echo '<script type="text/javascript">alert("NAO EXISTE FICHEIRO");history.back();</script>'; }else{ $ext = explode(".",$nome); if ($ext[1]=="php") { echo '<script type="text/javascript">alert("Arquivo não autorizado para download!");history.back();</script>'; }else{ header("Content-Transfer-Encoding: binary"); header('Content-Description: File Transfer'); header('Content-Length: '.filesize($local)); header('Content-Disposition: attachment; filename="'.$nome.$ext[1].'"'); header('Content-Transfer-Encoding: binary'); header('Pragma: public'); header("Content-Type:image/".$ext[1].""); /*$fp = fopen($local, "r"); fpassthru($fp); fclose($fp);*/ readfile($local); } } } $buscarNome = $_GET["imagem"]; $buscarGaleria = $_GET["galeria"]; forcar($bucarNome, $galeria); para passar os valores faço o seguinte <a href="/imagem.php?imagem={NOME_IMAGEM}&galeria={GALERIA}">{DOWNLOAD}</a> ele faz o download do ficheiro imagem.php. Já exprimentei com o readfile e com o fopen e é igual!
infopc Posted April 5, 2012 at 11:47 AM Report #447717 Posted April 5, 2012 at 11:47 AM O php está a correr? O que não tem solução, solucionado esta...
XsTeAl Posted April 5, 2012 at 12:15 PM Author Report #447718 Posted April 5, 2012 at 12:15 PM O php está a correr? sim, tenho o resto do site a funcionar, mas só esta página não funciona!
HappyHippyHippo Posted April 5, 2012 at 01:49 PM Report #447740 Posted April 5, 2012 at 01:49 PM ve se a resposta do image.php tens os headers que lhe deste, se não tiver o problema parece ser noutro sítio qualquer. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
XsTeAl Posted April 5, 2012 at 02:10 PM Author Report #447754 Posted April 5, 2012 at 02:10 PM ve se a resposta do image.php tens os headers que lhe deste, se não tiver o problema parece ser noutro sítio qualquer. Tinha um erro numa variavel :S alterei o código, já me faz o download da imagem só que quando abro o visualizador de imagens não consegue abrir o ficheiro porque está danificado ou é demasiado grande! código que tenho até agora! ob_start(); function extensao($arquivo){ $extensao = array_reverse(explode(".",$arquivo)); //echo '<script type="text/javascript">alert("'.$extensao[0].'");</script>'; return $extensao[0]; } function forcar($nome, $galeria){ $local = './ckfinder/userfiles/galeria/'.$galeria.'/'.$nome; if(!file_exists($local)){ echo '<script type="text/javascript">alert("Não existe a imagem pretendida.");history.back();</script>'; }else{ $ext = extensao($nome); if ($ext=="php") { echo '<script type="text/javascript">alert("Ficheiro não autorizado para fazer download!");history.back();</script>'; }else{ switch($ext){ case "jpg" : $mime = "image/jpg"; break; case "gif" : $mime = "image/gif"; break; case "png" : $mime = "image/png"; break; case "jpeg" : $mime = "image/jpeg"; break; default: $mime = "application/force-download"; } // teste para saber extensao ficheiro echo '<script type="text/javascript">alert("'.$mime.'");</script>'; header("Content-Transfer-Encoding: binary"); header("Content-Description: File Transfer"); header("Content-Length: ".filesize($local)); header("Content-Disposition: attachment; filename=".$nome.""); header("Content-Transfer-Encoding: binary"); header("Pragma: public"); header("Content-Type:".$mime.""); readfile($local); exit(); } } } $buscarNome = $_GET["imagem"]; $buscarGaleria = $_GET["galeria"]; forcar($buscarNome, $buscarGaleria); ob_end_flush();
XsTeAl Posted April 5, 2012 at 06:03 PM Author Report #447825 Posted April 5, 2012 at 06:03 PM Já está a funcionar, eu tenho um formulário que envia um mail, utilizando jquery, o email é enviado e recebo, o problema é que não envia o campo de email, deixo aqui o codigo que tenho. o codigo ainda nao tem qualquer tipo de validação! <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("#enviar").click(function(){ $("#enviar").hide("slow"); beforeSend:$("#carregando").show("slow"); var nome = $("#nome").val(); var email = $("#email").val(); var pais = $("#pais").val(); var mensagem = $("#mensagem").val(); $.post("/envia.php", { nome:nome, email:email, pais:pais, mensagem:mensagem }, function(get_retorno) { complete:$("#carregando").hide("slow"); $("#retorno").show("slow").text(get_retorno); }); }); }); </script> <form method="post" action="/envia.php"> <p>Nome:</p> <input type="text" id="nome" name="nome" /> <p>E-mail:</p> <input type="text" id="email" name="email" /> <p>País:</p> <input type="text" id="pais" name="pais" /> <p>Mensagem:</p> <textarea type="text" id="mensagem" name="mensagem"></textarea> <p><input type="button" value="Enviar" id="enviar"/></p> </form> <div id="carregando" style="text-align:center; display:none;"><img src="/imagens/ajax-loader.gif" /></div> <div id="retorno" style="border: 1px solid #3DBF0D; background: #91DE76; text-align: center; display:none; padding: 10px 10px 10px 10px;"><br /></div> <a href="#" rel="modalclose"> Fechar </a> envia.php $nome = $_POST['nome']; $email = $_POST['email']; $pais = $_POST['pais']; $mensagem = $_POST['mensagem']; $conteudo = "Nome: $nome <br>E-mail: $email <br>Mensagem: $mensagem"; $meuemail = "***@gmail.com"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: $email \r\n"; $assunto = "Requisito de Fotos"; $enviar = mail($meuemail, $assunto, $conteudo, $headers); if($enviar) { echo "Mensagem Enviada com Sucesso!"; }else{ echo "Ocorreu algum erro ao enviar o formulário"; }
XsTeAl Posted April 9, 2012 at 12:05 PM Author Report #448190 Posted April 9, 2012 at 12:05 PM Já consegui resolver o meu problema no envio de mail, era uma variável que estava a fazer conflito não sei porque :S Já alguém usou o Supersized 3.1.3 ? é um slideshow feito em jquery e eu queria preencher o array do próprio script com os dados obtidos por php, alguém sabe como fazer?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now