Ciao a tutti, mi sono appena iscritto a questo forum, anche se è qualche
tempo che utilizzo le risorse di html.it, per chiedere un aiuto.
Fino a poco tempo fa non ho avuto necessità di usare codice al di fuori di
html e in modo base, cioè creando pagine semplici per un sito informativo
di una squadra sportiva.
Purtroppo sono soppraggiunti impegni e quindi non riesco a gestirlo
completamente e quindi ho aggiunto 2 pagine: una per la gestione delle news
e uno per le foto (due script presi da html.it).
Quello per le news, una volta sistemati alcuni particolari per ora funziona
benissimo.
Quello per le immagini pure, però mi è stato chiesto di implementarlo per
aggiungere più immagini allo stesso tempo. Ora mi spiego meglio.
Una volta scaricato e sistemate alcune cose elemntari l'ho caricato sul
server e la struttura è la seguente:
---cartella_principale---
sottocartella di nome "big"
sottocartella di nome "img"
sottocartella di nome "mod"
sottocartella di nome "tmb"
file di nome "index.php"
file di nome "gallery.js"
file di nome "photogallery.php"
file di nome "body.css"
file di nome "gallery.css"
poi nella sotto cartella mod sono presenti i seguenti file:
file di nome "index.php"
file di nome "config.php"
file di nome "rinomina.php"
file di nome "aggiungi.php"
file di nome "elimina.php"
file di nome "ordina.php"
Praticamente è una photogallery molto semplice, ma più che funzionale per
le mie necessità.
Al caricamento di ogni immagine viene fatto un controllo per vedere
l'estensione, viene salvata tre volte in tre dimensioni diverse che servono
una per le thumbnails, una per l'anteprima e una a dimensioni maggiori da
visualizzare cliccando sull'anteprima. Poi sempre dalla pagina di gestione
è possibile rinomenarle, cambiare ordine ed eliminarle.
Ora il mio problema:
devo sistemare il codice in modo che sia possibile aggiungere più immagini
per volta per sveltire la procedura di caricamento.
Posto le pagine dentro la cartella "mod" che da quello che ho capito sono
le pagine per il caricamento delle immagini (non mi ricordo il nome dello
script, se no avrei postato il link per poterlo scaricare):
---index.php---
<?
require 'config.php';
if ($handle = opendir($f_thumb)) {
$array = array();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file !="Thumbs.db") {
$array[] = $file;
}
}
closedir($handle);
}
usort($array, "strnatcmp");
$id = (101 + count($array));
?>
<html>
<head>
<style>
body{font-family:verdana;font-size:12px; text-align:center}
table{font-family:verdana;font-size:12px; margin-right:auto; margin-
left:auto;}
h1{font-family:verdana;font-size:20px;font-weight:bold}
</style>
<title>Modifica la Galleria</title>
</head>
<body>
<h1>aggiungi immagine</h1>
Torna alla Galleria</p>
<form action="aggiungi.php" method="post" enctype="multipart/form-data">
<table border="1" cellpadding="10" align="center">
<tr>
<td>Immagine: </td>
<td align="right"><input name="id" type="hidden" value="<? echo "$id"
?>">
<input type="file" name="img" size="20"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit"
value="Aggiungi"></td>
</tr>
</table>
</form>
<table border="1" cellpadding="10" width="400px" align="center">
<tr>
<td>thumb</td>
<td colspan="2">ordine</td>
<td>nome</td>
<td>azione</td>
</tr>
<form action="rinomina.php" method="post">
<?php
$x = 0;
while ($x < (count($array))) {
?>
<tr>
<td>[img]<? echo $f_thumb. $array[$x] ?> [/img]</td>
<td><input name="id<? echo ("$x") ?>" type="text" value="<? echo $x+1
?>" size="1"></td>
<td><? if ($x != 0) {
echo '+
';
}
if ($x < (count($array)-1)) {
echo '-';
}
?></td>
<td><input name="nome<? echo ("$x") ?>" type="text" value="<? echo
(substr(rtrim ($array[$x], ".jpg.gif.png.jpeg.JPG"),4)) ?>" size="30">
<input type="submit" value="rinomina" ></td>
<td><a href="elimina.php?elimina=<? echo $array[$x] ?
>">Elimina</a></td>
</tr>
<? $x++;
}
?></form>
</table>
</body>
</html>
---config.php---
<?
# ATTENZIONE: le cartelle dovranno avere gli opportuni permessi di
scrittura.
$f_photo = "../big/"; # path dove lo script creerà l’immagine grande.
$f_thumb = "../tmb/"; # path dove lo script creerà l’immagine per le thumb.
$f_slide = "../img/"; # path dove lo script creerà l’immagine per lo slide
show.
$wphoto = 720; # assegnare la larghezza del layout che contiene thumbnails
e slideshow.
$hbig = 2000; # assegnare l'altezza massima delle immagini grandi.
$wbig = 2000; # assegnare la larghezza massima delle immagini grandi.
$hslide = 300; # assegnare l'altezza standard delle immagini dello slide
show.
$hthumb = 50; # assegnare l'altezza standard delle thumbnails.
$spthumb = 3; # assegnare lo spazio tra una thumb e l'altra.
$interv = 150; # intervallo di tempo per la durata delle slide (escluso
l'intervallo della dissolvenza incrociata).
$crossx = 30; # intervallo di tempo per la durata della dissolvenza
incrociata.
$keygallery ="Photogallery"; # parola chiave che compare in diversi punti
della pagina; ad es. nel title delle thumb e dello slide;
?>
---aggiungi.php---
<?
require 'config.php';
#Controllo se il file è stato inviato; controllo se il file è un immagine
jpg o png e assegno alla variabile ext l’estensione giusta
if (isset($_POST['submit'])) {
if(!is_uploaded_file($_FILES["img"]["tmp_name"])) {
print("<center>[b]Errore nell’upload del file");
exit;
}
if($_FILES["img"]["type"] != "image/jpeg" && $_FILES["img"]["type"] !=
"image/pjpeg" && $_FILES["img"]["type"] != "image/png" && $_FILES["img"]
["type"] != "image/gif" && $_FILES["img"]["type"] != "image/x-png") {
print("<center>[b]Devi caricare un file valido!
Il file
caricato è : ".$_FILES["img"]["type"])."
<a href='index.php'>Torna
indietro</a>";
exit;
}
}
#Genero un nome per il file inviato. L'ID è un numero di 3 cifre che serve
per controllare l'ordine dei file nella visualizazione; il valore viene
generato nel file index.php così: (numero di immmagini della galleria +
101).
$nomefile = $_POST["id"] . "-" . $_FILES["img"]["name"];
#Definisco il percorso delle immagini
$filetemp = $nomefile;
$filebig = $f_photo . $nomefile;
$filesmall = $f_thumb . $nomefile;
$fileslide = $f_slide . $nomefile;
#Sposto il file inviato dal form nella directory scelta e con il nome
definito sopra
move_uploaded_file($_FILES["img"]["tmp_name"], $filetemp) or die
("<center>Errore durante l’upload del file");
#Assegno alle variabili w e h rispettivamente la larghezza e l’altezza
dell’immagine originale
list($w, $h) = getimagesize($filetemp);
if($_FILES["img"]["type"] == "image/jpeg" or $_FILES["img"]["type"] ==
"image/pjpeg") {
$im = @imagecreatefromjpeg($filetemp);
}
if($_FILES["img"]["type"] == "image/gif") {
$im = @imagecreatefromgif ($filetemp);
}
if($_FILES["img"]["type"] == "image/png" or $_FILES["img"]["type"] ==
"image/x-png") {
$im = @imagecreatefrompng($filetemp);
}
#thumb
$ntw = ($w / ($h / $hthumb));
$nti=imagecreatetruecolor ($ntw,$hthumb);
imagecopyresized($nti,$im,0,0,0,0,$ntw,$hthumb,$w, $h);
imagejpeg($nti,$filesmall,75);
#slide
$nsw = ($w / ($h / $hslide));
$newh = $hslide;
# ridimensiono l'immagine dello slideshow se la larghezza supera le
misure del contenitore (settato in config.php)
if ($nsw > $wphoto) {
$nsw = $wphoto;
$newh = ($h / ($w / $nsw));
}
$nsi=imagecreatetruecolor ($nsw,$newh);
imagecopyresized($nsi,$im,0,0,0,0,$nsw,$newh,$w,$h );
imagejpeg($nsi,$fileslide,75);
#big
# ridimensiono l'immagine caricata se supera le misure indicate nel file
config.php
if ($h > $hbig) {$newh = $hbig;}
else {$newh = $h;}
$nsw = ($w / ($h / $newh));
if ($nsw > $wbig) {
$nsw = $wbig;
$newh = ($h / ($w / $nsw));
}
$nsi=imagecreatetruecolor ($nsw,$newh);
imagecopyresized($nsi,$im,0,0,0,0,$nsw,$newh,$w,$h );
imagejpeg($nsi,$filebig,75);
unlink($filetemp);
header("Location: index.php");
?>
Non aggiungo "rinomina.php", "ordina.php" ed "elimina.php" perchè non mi
sembrano utili per la risoluzione del problema, nel caso contrario fatemelo
saper eche le posto.
Quindi con il codice a vostra disposizione potreste aiutarmi nel modo più
semplice possibile?
Vi ricordo che praticamente non conosco codice php e js.
Chiedo scusa se mi sono dilungato troppo, ma volevo essere sicuro che fosse
chiaro il mio problema.
Se ho sbagliato forum o la sezione dove postare il mio problema chiedo
scusa e chiedo di scrivermi dove avrei dovuto farlo.
Ho provatogià a leggere altri post, ma le soluzioni proposte non facevano
al caso mio o non sono riuscito ad implementare il codice in mio possesso.
Ringrazio anche il creatore di questo script.
Vi ringrazio anticipatamente tutti, Fabio