Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, eu estava lendo um tópico sobre esconder o caminho original das imagens do site para que não pudessem ser postadas em outros sites assim diminuindo a tráfego em bytes e as vezes até bloquear a exibição de imagens de áreas restritas do site e pensei em uma forma, sei se quiser é só salvar a imagem e postar, mas ai o tráfego não pesa para para o dono do site http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif , bom gostaria de deixar ai o código, se alguém melhorar ou fazer alteração, por favor compartilhem, ainda mais se isso melhorar a performance ou a integridade do site, também deêm suas opiniões ou criticas, o código pode ser bem melhorado, eu que não tenho muito conhecimento:
<?
define("DIRETORIO", "/home/site/public_html/albuns/"); // define a pasta onde estará os arquivos do site
define("TIMENAME", time().rand(111111, 999999)); // número aleatório para impedir nomes de pasta ou arquivos iguais
define("SITE", "/home/site/public_html/"); // pasta raiz do site ( acredito que deva existir um metodo de definir a pasta sem precisar saber qual é a pasta raiz ).
// deleta arquivos e pastas
function rmdir_dir($dirname) {
if ($dirHandle = opendir($dirname)) {
chdir($dirname);
while ($file = readdir($dirHandle)) {
if ($file == '.' || $file == '..') continue;
if (is_dir($file)){
rmdir_dir($file);
} else {
unlink($file);
}
}
chdir('..');
rmdir($dirname);
closedir($dirHandle);
}
}
// lista o diretorio e deleta pastas antigas
function ls_dir($dirname) {
$dir_time = time();
$dir_del = $dir_time - 60; // tempo para eclusão dos arquivos
foreach (glob ($dirname."*", GLOB_ONLYDIR) as $pastas) { // parece que só funciona em linux
if (is_dir ($pastas)) {
$diretorio = str_replace($dirname,"",$pastas); // nome da pasta que será apagada
$dir = substr(str_replace($dirname,"",$pastas), 0, 10); // data da criação da pasta
if($dir < $dir_del){ // compara tempo de criação da pasta
rmdir_dir(DIRETORIO.$diretorio); // apaga temporário
}
}
}
}
// copia o arquivo para a pasta temporária
function copy_img($foto){
ls_dir(DIRETORIO); // exclui temporário
$nameimg = time().rand(111111, 999999); // cria o nome da imagem
if(!file_exists(DIRETORIO.TIMENAME)){
$pasta = mkdir (DIRETORIO.TIMENAME , 0777 );
}
$src_true = DIRETORIO.TIMENAME."/".$nameimg.".jpg";
$src_false = "/albuns/".TIMENAME."/".$nameimg.".jpg";
copy(SITE.$foto, $src_true);
return $src_false;
}
?>
<img src="<?=copy_img("caminho_da_imagem")?>" /> <!-- para usar somente informar o caminho da imagem a partir da raiz do site, exemplo, se tem uma pasta imagens informe "imagens/nome_da_imagem.extensão", alem de mostrar a imagem irá apagar todas as imagens e pastas do temporário -->Att,
Orides.
Cara, excelente seu post, ele me ajudou em um outro problema na página de Intranet do meu serviço.
Bloqueei todos os arquivos que os usuários postavam que fica na pasta files com .htaccess que posteriormente coloquei no próprio http.conf, ou seja, o acesso a pasta e a qualquer arquivo fica bloqueado. Surgiu-me a idéia do php pegar o arquivo e copiar temporariamente no servidor para um lugar onde o usuário podesse fazer o download, onde procurei dicas e achei seu post. Ao aplicá-lo surgiram algumas modificações para melhor atender ao meu processo.
CODE
//func para download
} else {