Forçando download de Imagem JPG
Bom dia galera, fiz um script que quando tu clica no link tu baixa automaticamente uma imagem, porém ele não está funcionando corretamente, tipo, baixa a imagem, a mesma tem o tamanho certo, o nome certo, mas quando eu abro dar "Arquivo inválido", ou "Esse arquivo não é uma imagem válida, não é jpg", não entendo, funciona com qualquer outro tipo de arquivo, menos com JPG, segue o código abaixo:
<?php
$idEvento = $_REQUEST['idEvento'];
$idFoto = $_REQUEST['idFoto'];
$arquivo = 'foto/'.$idEvento.'_'.$idFoto.'_g.jpg';
if(isset($arquivo) && file_exists($arquivo)){ // faz o teste se a variavel não esta vazia e se o arquivo realmente existe
switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){ // verifica a extensão do arquivo para pegar o tipo
case "pdf": $tipo="application/pdf"; break;
case "exe": $tipo="application/octet-stream"; break;
case "zip": $tipo="application/zip"; break;
case "doc": $tipo="application/msword"; break;
case "xls": $tipo="application/vnd.ms-excel"; break;
case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
case "gif": $tipo="image/gif"; break;
case "png": $tipo="image/png"; break;
case "jpg": $tipo="image/jpg"; break;
case "mp3": $tipo="audio/mpeg"; break;
case "php": // deixar vazio por seurança
case "htm": // deixar vazio por seurança
case "html": // deixar vazio por seurança
}
header("Content-Type: ".$tipo); // informa o tipo do arquivo ao navegador
header("Content-Length: ".filesize($arquivo)); // informa o tamanho do arquivo ao navegador
header("Content-Disposition: attachment; filename=".basename($arquivo)); // informa ao navegador que é tipo anexo e faz abrir a janela de download, tambem informa o nome do arquivo
readfile($arquivo); // lê o arquivo
exit; // aborta pós-ações
}
Já tentei trocar $tipo="image/jpg"; por application/octet-stream", mas não funciona também, mesmo erro =/
Discussão (2)
Carregando comentários...