Ir para conteúdo

POWERED BY:

Arquivado

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

RedHot66

Rename sem perder o arquivo original

Recommended Posts

Galera, to utilizando a função rename para renomear os meus arquivos.

Só que estou com um problema, estou usando isso (exemplo) :

$arquivo = 'imagem.jpg';

$resultado = rename ($arquivo,'minha-imagem.jpg');

Só que eu NÃO POSSO substituir o arquivo verdadeiro, pois estou utilizando a imagem.jpg em vários arquivos e gostaria de renomear o arquivo quano um usuario clicar no botao de download, ai ele iria chamar essa função rename, sem eu perder o verdadeiro nome do arquivo, resumidamente, eu preciso que o php fizesse uma 'cópia temporaria' ou algo do tipo para eu poder puxar o arquivo para download, ai iria trocar o nome para download e não afetaria o verdadeiro nome da imagem.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Force o Down e Renomeie depois

 

Exemplo

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

if (file_exists($file)) {
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename='. basename($file));
	header('Content-Transfer-Encoding: binary');
	header('Expires: 0');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
	header('Pragma: public');
	header('Content-Length: ' . filesize($file));
	ob_clean();
	flush();
	readfile($file);
	rename ($file,'minha-imagem.jpg');
	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que copiar o arquivo ou renomeá-lo em disco? Vai gastar I/O à toa

 

Use o arquivo original e só altere o nome no header, se baseando no exemplo do Williams Duarte:

 

 

header('Content-Disposition: attachment; filename=NOME_DO_ARQUIVO');

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.