@Zomer said:
propio per questo avevo pensato di fare un upload con database, ho trovato questo:
...
Più che altro continuo a non capire se ti interessa che l'immagine sia ridimensionata al momento dell'upload o al momento della visualizzazione.
Perchè, nel primo caso, ti basterebbe inserire l'ultima porzione di codice che ho scritto nel mmio ultimo post, alla fine di questo che hai scritto tu, così da ottenere:
[php]
<?php
// Verifico eventuali problemi nell'upload del file
if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
echo "Errore nell'invio del file. Riprova!");
$SizePh = 580; //Dimensione della foto dopo l'elaborazione
$DirGallery = "foto/"; //Nome della cartella in cui salvare la foto
$Compression = 100; //Compressione dell'immagine
ini_set("memory_limit", "128M"); //Settaggio a 128mb del limite imposto dal php.ini
set_time_limit(3000); //Prolungamento del limite imposto dal timer del php.ini
// Connessione e selezione del database
mysql_connect("localhost", "***", "")
or die("Connessione non riuscita: " . mysql_error());
if(!mysql_select_db("my_zomer"))
die("Selezione database fallita!");
// Recupero delle informazioni sul file inviato
$nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"];
$nome_file_vero = $_FILES["file_inviato"]["name"];
$tipo_file = $_FILES["file_inviato"]["type"];
// Leggo il contenuto del file
$dati_file = file_get_contents($nome_file_temporaneo);
// Preparo il contenuto del file per la query sql
$dati_file = addslashes($dati_file);
// Query per inserire il file nel DB
$query = "INSERT INTO tabella_file SET
nome = '$nome_file_vero',
tipo = '$tipo_file',
dati = '$dati_file'";
mysql_query($query)
or die("Query non valida: " . mysql_error());
//Ritorna le dimensioni della foto originale
list($width, $height, $type) = getimagesize($nome_file_temporaneo) or die("Impossible to get the file data");
//Calcolo delle nuove dimensioni per la foto originale.
if($width > $height)
{
$new_width = $SizePh;
$new_height = ($SizePh * $height) / $width;
$new_height = number_format($new_height, 0);
}
elseif($height > $width)
{
$new_height = $SizePh;
$new_width = ($SizePh * $width) / $height;
$new_width = number_format($new_width, 0);
}
elseif($height == $width)
{
$new_width = $SizePh;
$new_height = $SizePh;
}
$destimg = imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
$srcimg = ImageCreateFromJPEG($nome_file_temporaneo) or die("Problemi nell'aprire l'immagine");
ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento");
ImageJPEG($destimg, $DirGallery.$nome_file_vero, $Compression) or die("Problemi nel salvataggio");
// Messaggio di successo
echo "Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente!");
?>
[/php]Nel secondo dei due casi invece dovresti semplicemente spostare il file temporaneo, nella cartella da te selezionata come cartella principale della fotogallery. Ci sarebberò cioè due script che collaborano: uno che carica l'immagine in una cartella e l'altro che, quando viene richiamato, ridimensiona tutte le foto e le visualizza.
@mcmmultimedia said:
Questa galleria e ben fatta
ma come tutti i clienti chiedono... ma nn si puo mettere la descrizione all'immaggine??
ed ecco che si deve per forza avere un db!
Giusto?
Come ho scritto nel primo post, ho costruito questa gallery, proprio nell'intento di creare una cosa semplice e funzionale al tempo stesso, tralasciando tutto ciò che può sembrare superfluo. Nessuno però impedisce di creare una piccola tabella mysql su cui inserire il nome della foto e una sua descrizione. In questo modo non ci sarà bisogno di aprire una cartella per eseguire il ridimensionamento, ma basterà una query.
Con un pò di fantasia e pazienza si può fare tutto, ma non è l'obbiettivo principale di questa fotogallery