-
Integrare uno script
Salve ho creato uno script per l'upload con db ecco qui le pagine
OPEN.PHP
WIEV.PHP
WRITE_DB.PHP
E fin qui tutto bene. Ora un mio amico mi ha inviato uno script che consente di creare delle miniature delle foto e ne modifica l'estensione cosi da richiamarle eccolo qui.
CONFIG_GALLERY.PHP
MAIN_GALLERY.PHP
Codice PHP:
<?php
// Inclusione del file config_gallery.php per aquisire le variabili.
include("config_gallery.php");
// Recupero della variabile passata in get.
// il valore "index" rappresenta l'indice della fotogallery, "view" la visualizzazione della singola foto.
@$mode = $_GET['mode'];
// Definizione delle variabili in base al valore di $mode
if ($mode == "index" || empty($mode) || !isset($mode))
{
$quanto = $thumb_width;
}
elseif ($mode == "view")
{
$quanto = $photo_width;
$destination_path = $dir;
}
// Aumenta la memoria utilizzabile fino a 128mb e il timeout a 4 minuti.
// Questo ci consente di creare le miniature senza avere un errore di timeout dal server
ini_set("memory_limit", "128M");
set_time_limit(240);
// Se non esiste la cartella di destinazione delle miniature (vedi config_gallery.php) ne si forza la creazione
if (!file_exists($destination_path))
{
mkdir($destination_path , 0777);
}
// Apertura della directory in cui sono contenute le foto a dimensione originale
if ($handle = opendir($dir))
{
$i = 1; //Inizializzazione dell'indice
// Letttura delle immagini conenute nella cartella $dir
while (false !== ($file = readdir($handle)))
{
list($width, $height, $type, $attr) = @getimagesize($dir.$file);
// Se è una immagine "JPEG" continuo con la sua elaborazione
// altrimenti si passa alla foto successiva
if($type == 2)
{
// Elaborazione delle nuove dimensioni (altezza e larghezza) in proporzione.
// Ciò consente di non alterare la qualità della immagine.
if($width > $height)
{
$new_width = $quanto;
$new_height = ($quanto * $height) / $width;
$new_height = number_format($new_height, 0);
}
elseif($height > $width)
{
$new_height = $quanto;
$new_width = ($quanto * $width) / $height;
$new_width = number_format($new_width, 0);
}
elseif($height == $width)
{
$new_width = $quanto;
$new_height = $quanto;
}
//Se si sta visualizzando una singola foto e questa è già stata ridimensionata si ignora questo passaggio, altrimenti la foto viene ridimensionata.
// L'"if" controlla se la foto in questione ha già le dimensioni desiderate. Se le dimensioni non sono uguali a quelle volute, verrà ridimensionata.
if ($mode == "view")
{
if ($new_height != $height && $new_width != $width)
{
isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
$destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
$srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine
}
}
//Se si sta visualizzando l'indice delle foto (contenente le miniature) e queste sono già state ridimensionate si ignora questo passaggio, altrimenti la foto viene ridimensionata.
// l'"if" controlla se esiste già una miniatura, chiamata con lo stesso nome della foto originale, presente nella cartella di destinazione. Se non esiste viene creata la minatura
elseif (empty($mode))
{
if (!file_exists($destination_path.'/'.$file)) //Se la miniatura non esiste verrà creata altrimenti si ignora questo passaggio
{
isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
$destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
$srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine
}
}
$image [$i] = $file; //Creazione dell'array contenente le immagini
$i++; //Incremento dell'indice
}
}
// Chiusura della cartella $dir
closedir($handle);
}
else
{
// Se vi è un errore nell'aprire la cartella $dir allora viene stampato a video seguente paragrafo
echo "<p align=\"center\">
Impossibile eseguire lo script.
<br />
Accertati di aver impostato correttamente i parametri e
che la cartella (nome: \"<b>$dir</b>\" ) in cui sono contenute le foto esista
</p>";
}
//Se si sta visualizzando l'indice allora utilizzo la paginazione propria dell'indice
if ($mode == "index" || empty($mode) || !isset($mode))
{
// Se si è scelto di utilizzare la paginazione (vedi file config_gallery.php) allora vengono stampati i links.
// Altrimenti verranno visualizzate tutte le immagini nella stessa pagina.
if (empty($numperpagina))
{
$numperpagina = count($image);
}
isset($_GET['page']) ? $pageNum = $_GET['page'] : $pageNum = 1;
$inizio = ($pageNum - 1) * $numperpagina;
$fine = $inizio + $numperpagina;
$i = 1; //inizializzo l'indice
foreach ($image as $id => $nome)
{
if ($i > $fine)
{
break;
}
if ($i >= $inizio)
{ // stampa la miniatura
echo " <a href=\"?id=$i&from=$pageNum&mode=view\"><img src=\"".$destination_path.$nome."\" title=\"".$nome."\" border=\"0\" alt=\"foto\" /></a>";
}
$i++; // incremento dell'indice
}
if ($fine > count($image))
{
$fine = count($image);
}
// Conto delle pagine
$maxPage = ceil(count($image)/$numperpagina);
.........ecc
?>
Io vorrei integrare alcune funzioni del secondo script con quelle del primo, ora io non ci riesco, mi potreste aiutare? vi elenco funzioni interessate.
:arrow:Creare miniature.
:arrow:Poter richiamare l'immagine senza confuzioni con l'esetensione (perchè da quanto ho capito nel secondo script trasforma l'estensione).
Grazie! della vostra collaborazione :wink:
-
Non credo che un lavoraccio del genere piaccia a molti...