Boas,
A nível de direitos sobre o código, devo-vos remeter para o meu primeiro artigo desta rubrica.
Hoje trago-vos um script (que podem facilmente transformar numa função) que força o browser de um visitante a fazer download de um ficheiro.
<?php $file = "/caminho/para/o/ficheiro.pdf"; $attachment_name = "nome_para_download.pdf"; $file_extension = strtolower(substr(strrchr($file,"."),1)); $ext = substr(strrchr($file,"."),1); switch( $file_extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "odt": $ctype="application/vnd.oasis.opendocument.text";break; case "doc": $ctype="application/msword"; break; case "ods": $ctype="application/vnd.oasis.opendocument.spreadsheet";break; case "xls": $ctype="application/vnd.ms-excel"; break; case "odp": $ctype="application/vnd.oasis.opendocument.presentation";break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "mp3": $ctype="audio/mpeg3";break; case "wav": $ctype="audio/wav";break; case "mpeg": case "mpg": $ctype="video/mpeg";break; case "avi": $ctype="video/avi";break; case "jpeg": case "jpg": $ctype="image/jpg"; break; default: $ctype="application/force-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: ".$ctype.""); header("Content-Disposition: attachment; filename=\"".$attachment_name."\";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($file)); readfile($file); exit(); ?>
Modo de utilização:
Em cima está descrita uma forma de utilizar para fazer download do ficheiro “/caminho/para/o/ficheiro.pdf” sob o nome “nome_para_download.pdf”
Qualquer dúvida ou sugestão, estão completamente à vontade.