Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wdc_black_

[Resolvido] Forçar download ao clicar na imagem

Recommended Posts

n sei se tem como fazer isso, mas vcs saberiam por exemplo

 

tenho essa imagem aqui

 

<li><a href="#"><img src="foto02.jpg" alt="" /></a></li>

queria que quando a pessao clicasse nela, ja aparecese a opcao de download dela direto, sem a pessoa ter que clicar botão direito>salvar imagem como...

 

tem algum modo de fazer isso?

obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é feito com uma linguagem server-side como o php por exemplo

Talvez seja possível com JavaScript mas nunca utilizei para saber

 

Veja que area prefere para que eu possa mover.

mas basta procurar por "forçar download php" no google

que você acha diversos scripts sobre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

com jpeg não sei não

 

uma opção é colocar a imagem em um zip ai ele já faz o down automático http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei esse código

<?php
$link = $path_a_tu_doc."/".$id;
header ("Content-Disposition: attachment; filename=".$id."");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($link));
readfile($link);
?>

link - download.php?id=seuarquivo.jpg

 

mas ele baixa o arquivo download.php :/

keria baixar o jpg...

acho que teria que ser em javascript...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim ó:

 

<?php
$arquivo = "imagem.jpg";

header("Content-Type: application/save") 
header("Content-Length:".filesize($arquivo)); 
header('Content-Disposition: attachment; filename="' . $arquivo . '"'); 
header("Content-Transfer-Encoding: binary");
header('Expires: 0'); 
header('Pragma: no-cache'); 

$dw = fopen("$arquivo", "r"); 
fpassthru($dw); 
fclose($dw); 
?>

Mas basta alertar que esses scripts para forçar download

pode deixar algumas falhas na segurança de seu site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe funcionou msm, mas agora tem 1 problemão hahaha

o meu código é 1 album... ele fica +- assim

<li><a href="#"><img src="foto01.jpg" alt="" /></a></li>
<li><a href="#"><img src="foto02.jpg" alt="" /></a></li>
<li><a href="#"><img src="foto03.jpg" alt="" /></a></li>
<li><a href="#"><img src="foto04.jpg" alt="" /></a></li>

pode ser 4 fotos como 40 fotos...

elas são inseriadas em 1 loop php ke pega a informação direto do banco de dados...

como eu poderia adaptar pra coloca link de download pra cada foto?

cada uma tem 1 id...

eu poderia pela id dela passar o caminho dela para a variavel $arquivo...

eu vo da uma tentada aqui, se caso não conseguir posto aqui ;)

vlww thelon

Compartilhar este post


Link para o post
Compartilhar em outros sites

manda por get acho que resolve

coloca a variavel gerada pelo loop no link

tipo

 

download.php?id=$variavel

 

ai no script para forçar o download você faz assim

 

 


$id = $_GET['id'];

$arquivo = "foto".$id;
header("Content-Type: application/save") 
header("Content-Length:".filesize($arquivo)); 
header('Content-Disposition: attachment; filename="' . $arquivo . '"'); 
header("Content-Transfer-Encoding: binary");
header('Expires: 0'); 
header('Pragma: no-cache'); 

$dw = fopen("$arquivo", "r"); 
fpassthru($dw); 
fclose($dw);

Compartilhar este post


Link para o post
Compartilhar em outros sites

aeww Thelon ficou assim....

 

php

<div class="galeria">
    <ul class="fotos"> 
    <?php
	include "conexao.php";
	$seleciona = mysql_query("SELECT * FROM imagens");
	
	while($dados=mysql_fetch_array($seleciona)){
	
	$id= $dados["id"];
	$foto= $dados["foto"];
	$data= $dados["data"];
	
	echo "
	<li><a href='download.php?id=$id'><img src='imagens/$foto'><span><span class='legenda'>$data</span><img src='imagens/$foto'  /></span></a></li>";
	}
	?>     
    </ul>
    <span style="clear: both;" /></span>
</div>

download

<?php
$id = $_GET['id'];

$arquivo = "foto".$id;
header("Content-Type: application/save") 
header("Content-Length:".filesize($arquivo)); 
header('Content-Disposition: attachment; filename="' . $arquivo . '"'); 
header("Content-Transfer-Encoding: binary");
header('Expires: 0'); 
header('Pragma: no-cache'); 

$dw = fopen("$arquivo", "r"); 
fpassthru($dw); 
fclose($dw); 
?>

mas deu esse erro

Parse error: parse error in C:\xampp\htdocs\album\download.php  on line 6

e agora? hahaha q q eu faço?

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 possibilidades:

 

1- você não especificou que é .jpg o arquivo

$arquivo = "foto" . $id . "jpg";

________________________________

 

 

2- Mano o $foto tem o mesmo nome que "foto".$id ?

Se tiver você nem precisa usar o $id basta usar o $foto direto

e vai ser por esse motivo o erro

pois ele não vai encontrar a sua imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe consegui :D

passei o nome da foto pela url

e coloquei no php assim

 

$id = $_GET['id'];

$arquivo = 'imagens/'.$id;

ai fecho todas :)

tópico resolvido

vlw meu velho, abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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