<?php // Nome do arquivo que será enviado para o usuário $arquivo = 'nome_do_arquivo.mp3'; // Velocidade máxima de download. Aqui exemplificado com 10,5 kb/s $velocidade = 10.5; // Verifica se o arquivo existe e se ele é realmente um arquivo if(file_exists($arquivo) && is_file($arquivo)) { header('Cache-control: private'); // Caso tenha problemas com a nomenclatura do arquivo na hora do download, remova a próxima linha header('Content-Type: application/octet-stream'); header('Content-Length: '.filesize($arquivo)); header('Content-Disposition: filename='.$arquivo); // Esvazia o buffer de saída antes de começar a enviar flush(); $arqAberto = fopen($arquivo, 'r'); while(!feof($arqAberto)) { echo fread($arqAberto, round($velocidade*1024)); flush(); sleep(1); } fclose($arqAberto); } ?>
Grande Jaques!!
Cara muito bom esses artigos!!
Grande abraço bruxo!
Cara não testei seu script mas a idéia é muito boa parabéns!
boa!,,,,,,,,,
ñ conhecia, mas é muito útil, dependendo do projeto.
abraço
Excelente post, mas fui testar aqui, o arquivo veio corrompido, notei que ele roda em torno de 20segundos e dá como download concluído, será que é apenas aqui que isto ocorre? parabéns pelos posts, são de altíssima qualidade, estou pegando este site como referencia
É, tava tentando aqui e o script cortava no meio, me veio a cabeça do script ser executado por apenas 30s, no caso em alguns servidores pode-se utilizar o ini_set('max_execution_time', '0'); que o script não terá mais tempo máximo de execução... dá certinho, funciona perfeitamente parabéns novamente pelo post
Rafael Jaques - PHPit 2007
Site sob Creative Commons - Alguns direitos reservados