Originariamente inviato da Stanislao
1) rinominare il file salvato con dataoraesecondo.ext
Codice PHP:
$dot = strrpos($_FILES['myfile']['name'], '.') + 1;
$estensione = substr($_FILES['myfile']['name'], $dot);
$timestamp = date('YmdHis');
//se $target_path non finisce con / aggiungilo
if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path.$timestamp.'.'.$estensione)) {
2) creare una miniatura dello stesso file
Questa è una funzione che mi sono fatto io per i miei lavori
Codice PHP:
function makeThumb($image,$path)
{
$max_width = 150; //larghezza massima per la miniatura
$max_height = 150; //altezza massima per la miniatura
$dot = strrpos($image, '.') + 1;
$estensione = substr($image, $dot);
$estensione .= '.'.$estensione;
if($estensione==".jpeg" || $estensione==".jpg")
{
$handle_immagine = @imagecreatefromjpeg($path.$image);
}
elseif($estensione==".gif")
{
$handle_immagine = @imagecreatefromgif($path.$image);
}
elseif($estensione==".png")
{
$handle_immagine = @imagecreatefrompng($path.$image);
}
if($handle_immagine !== false) //se la nuova immagine è stata creata correttamente
{
$width = imagesx($handle_immagine);
$height = imagesy($handle_immagine);
//dimensioni per la thumbnail
if($width >= $height)
{
$newX = $max_width;
$newY = round(($height/$width)*$newX);
}
else
{
$newY = $max_height; //dimensione massima verticale
$newX = round(($width/$height)*$newY);
}
$tmp_immagine = imagecreatetruecolor($newX, $newY);
imagecopyresized($tmp_immagine,$handle_immagine,0,0,0,0, $newX, $newY, $width, $height);
//crea la miniatura con lo stesso nome dell'immagine originale aggiungendo 'thumb_' all'inizio
if(!imagejpeg($tmp_immagine, $path.'thumb_'.$image))
{
return false;
}
imagedestroy($tmp_immagine);
}
else //imagecreatefrom... ha fallito
{
return false;
}
return true;
}
3) al termine ( siccome apro questo script in una popup) chiudere la popup e passare ad un campo del form sottostante il nome del file.
Lo script viene chiamato tramite AJAX?