Mi viene un po' difficile provare il codice che hai postato perché è una procedura completamente diversa da quella che ho strutturato.
Puoi provare a testare anche tu il metodo che ho linkato nel mio post precedente implementando il rename in caso di upload di un doppione?
Per mia comodità ho modificato il file config.images.php così:
Codice PHP:
<?php
define('TMP_DIR', 'picture/tmp/');
define('IMAGE_DIR', 'picture/');
define('THUMB_DIR', 'picture/tmbs/');
define('IMAGE_QUALITY', 80);
define('THUMB_QUALITY', 70);
define('IMAGE_HEIGHT', 400);
define('THUMB_HEIGHT', 75);
?>
e tutte le altre mie modifiche le ho fatte nel file upload.php qui sotto:
Codice PHP:
<?PHP
$a = session_id();
if(empty($a)) session_start();
if(!isset($_POST['submit_upload'])){
header("Location: index.php");
}else{
unset($_SESSION['complete_image_path']);
include_once 'config_images.php';
//faccio l'upload dell'img
include_once 'class.upload.php';
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_FILES = $HTTP_POST_VARS;
$up = new FileUpload(TMP_DIR);
//Eliminiamo gli spazi e sostituiamoli con "_"
$fileIn = $_FILES['browse']['name'];
$fileIn = str_ireplace(" ","_",$fileIn);
$complete = "";
$id = 0;
$filename = IMAGE_DIR.$id."_".$fileIn;
//Se non esiste il file con quel nome..
if(!file_exists($filename)){
$complete = $filename;
}else{
//Finchè esiste il file con quel nome...
while(file_exists(IMAGE_DIR.$id."_".$fileIn))
{
//incrementa l'id
$id++;
//Crea il file con il nome : n_nomefile.ext dove n sta per un numero
$complete = IMAGE_DIR.$id."_".$fileIn;
}
$up->RenameFile($id."_".$fileIn);
}
$file = $_FILES['browse'];
$file['name'] = $id."_".$file['name'];
$up->Upload($file);
$_SESSION['complete_image_path'] = $complete;
//adesso ridimensiono l'img a 400 x 400
include_once 'class.image.php';
$img = new Image(TMP_DIR . $id."_".$fileIn);
//creo l'immagine sorgente
$result = $img->CreateSourceImage();
//se il tipo di immagine è supportato
//salvo 2 file:
//uno con l'img grande e uno con l'img piccola
//nelle rispettive directory
if($result){
//salvo l'immagine con altezza 400 lasciandola proporzionata
$img->SaveProportionateImage(IMAGE_DIR . $id."_".$fileIn, IMAGE_QUALITY, IMAGE_HEIGHT);
//salvo l'immagine con altezza 75 lasciandola proporzionata
$img->SaveProportionateImage(THUMB_DIR . $id."_".$fileIn, THUMB_QUALITY, THUMB_HEIGHT);
//libero la memoria cancellando l'immagine sorgente
$img->Free();
}
//se il tipo di img non è supportata
//o se il file uploadato nn è un immagine
else
echo 'Immagine non valida
';
//In ogni caso cancello il file uploadato nella cartella ./tmp
$up->DeleteFile();
}
?>
e lo richiamo da newuserform.php
Codice PHP:
<form action="profile/upload.php" id="browse_frm" name="browse_frm" method="post" enctype="multipart/form-data">
<input name="browse" type="file" size="25" id="browse" />
<input name="submit_upload" type="submit" size="20" id="update" value="Aggiorna"/>
</form>