• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jcfr

upload de imagens

1 mensagem neste tópico

boas, pessoal, mais uma vez recorro aos vossos conhecimentos que ja me ajudaram várias vezes...

queria fazer o upload de uma imagem e fazer uma copia da mesma  mas mais pequena, de forma a que tivesse uma imagem grande e outra pequena mas iguais, ou seja duas fotos da mesma coisa com tamanhos diferentes inserindo a imagem apenas uma vez.

andei a ver na net e encontrei isto:

if (($_FILES['Photo2']['size']>0)){ 

//***************START OF RESIZE IMAGE********************

// The file
$filename = $_FILES['Photo2']['tmp_name'];
$filemini = $filename;
// Set a maximum height and width
$width = 513;
$height = 342;

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
   $width = ($height / $height_orig) * $width_orig;
} else {
   $height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $filename, 100);

//***************END OF RESIZE IMAGE********************

//RENAME PHOTO AND MOVE TO PROPER FOLDER
$id=rand(00000,99999);
//$id = "1";  //if multiple photos need to be named 1,2,3 etc
    
$extension = strrchr($_FILES['Photo2']['name'],'.'); 
$extension = strtolower($extension);

$save_path = 'img/'; 
    
$NewPhotoName = $id . $extension;

$filenamedois = $save_path . $id . $extension;

move_uploaded_file($_FILES['Photo2']['tmp_name'],$filenamedois);


}else{
	$filenamedois="";
}

isto faz o upload da imagem para a pasta correcta mudando o tamanho e o nome tal como eu pretendia.

tentei adaptar de forma a que carregasse a mesma imagem duas vezes com tamanhos diferente:

//////////////////////////////////////////////////////////////////////imagem 2
if (($_FILES['Photo2']['size']>0)){ 

//***************START OF RESIZE IMAGE********************

// The file
$filename = $_FILES['Photo2']['tmp_name'];
$filenamemini = $_FILES['Photo2']['tmp_name'];

// Set a maximum height and width
$width = 513;
$height = 342;
$widthmini = 105;
$heightmini = 78;
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
list($width_origmini, $height_origmini) = getimagesize($filenamemini);

if ($width && ($width_orig < $height_orig)) {
   $width = ($height / $height_orig) * $width_orig;
} else {
   $height = ($width / $width_orig) * $height_orig;
}
if ($widthmini && ($width_origmini < $height_origmini)) {
   $widthmini = ($heightmini / $height_origmini) * $width_origmini;
} else {
   $heightmini = ($widthmini / $width_origmini) * $height_origmini;
}
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image_pmini = imagecreatetruecolor($widthmini, $heightmini);
$image = imagecreatefromjpeg($filename);
$imagemini = imagecreatefromjpeg($filenamemini);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagecopyresampled($image_pmini, $imagemini, 0, 0, 0, 0, $widthmini, $heightmini, $width_origmini, $height_origmini);

// Output
imagejpeg($image_p, $filename, 100);
imagejpeg($image_pmini, $filenamemini, 100);

//***************END OF RESIZE IMAGE********************

//RENAME PHOTO AND MOVE TO PROPER FOLDER
$id=rand(00000,99999);
$idmini=rand(00000,99999);
//$id = "1";  //if multiple photos need to be named 1,2,3 etc
    
$extension = strrchr($_FILES['Photo2']['name'],'.'); 
$extensionmini = strrchr($_FILES['Photo2']['name'],'.'); 
$extension = strtolower($extension);
$extensionmini = strtolower($extensionmini);

$save_path = 'img/'; 
$save_pathmini = 'img/minis/';
    
$NewPhotoName = $id . $extension;
$NewPhotoNamemini = $idmini . $extensionmini;

$filenamedois = $save_path . $id . $extension;
$filenamedoismini = $save_pathmini . $idmini . $extensionmini;

move_uploaded_file($_FILES['Photo2']['tmp_name'],$filenamedois);
move_uploaded_file($_FILES['Photo2']['tmp_name'],$filenamedoismini);


}else{
	$filenamedois="";
	$filenamedoismini="";
}

estou a guardar o caminho do ficheiro numa base de dados, o caminho das duas é gerado e guardado, tanto da mini como da imagem normal, mas apenas é criada a imagem normal (filenamedois)...

alguem me sabe dizer porque ou como resolver o problema?

desde já muito obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora