Salve ragazzi,
Ritorno sulla discussione dell'upload immagini. Allora ho del codice da postare, vorrei una mano per poterlo modificare al meglio. Mi spiego meglio. La mia intenzione è quella di creare delle thumb una volta caricate le immagini che si possono visualizzare sotto forma di album e poi cliccarci sopra, per intenderci un po' come fa fb. Ovviamente solo la memorizzazione del link, per non appesantire il db. Una cosa dal semplice php si può trasformare il codice che posterò ora in un filee dinamico ??? Credo che il dinamicismo dei siti, serva per accelerare il tutto o sbaglio ???? Ecco a voi il codice:
index.php
[PHP]
<script >
lì ho dovuti togliere perchè da fastidio al sistema e non mi fa inviare il messaggio
<script>
function togli(x)
{
$('#'+x).toggle();
var immagine = document.getElementById('hidden'+x).value;
$.get('togli.php',{img:immagine},function(done){$('#cancella_img').html(done)});
}
function carica()
{
$.post('insert_immages.php',{fine:'yes'},function(done){$('body').html(done)});
}
</script>
<?php
require_once("connetti.php");
#se non esistono delle cartelle le creo
if(!file_exists('img_temp'))
{
mkdir('img_temp/',0777);
}
if(!file_exists('immages'))
{
mkdir('immages/',0777);
}
if($_POST['sub'])
{
#Inizializzo la cartella dove andranno a finire le imamgini
$dir = 'img_temp/';
#ricevo i dati delle immagini
#$nome per il nome del file, es: pippo.jpeg
$nome = $_FILES['file']['name'];
#$nome_temporaneo invece per il nome temporaneo che
#il server crea per l'immagine pippo.jpeg
$nome_temporaneo = $_FILES['file']['tmp_name'];
#semplicemente per far girare il codice while e leggere l'array
$n=0;
#finche n sarà minore delle immagini caricate, il ciclo continuer�
while($n<count($nome))
{
#trovo le informazioni , come: l'altezza, la larghezza e il sorgente delle immagini
#creando una lista e usando poi getimagesize() per prelevare le informazioni
list($larghezza,$altezza,$sorgente,$attributo) = getimagesize($nome_temporaneo);
#creo uno switch in base al sorgente e per ogni caso effettuer� un preciso evento
switch($sorgente)
{
case IMAGETYPE_GIF:
le immagini
$immagine = imagecreatefromgif($nome_temporaneo);
imagegif($immagine, $dir.$nome);
break;
case IMAGETYPE_JPEG:
$immagine = imagecreatefromjpeg($nome_temporaneo);
imagejpeg($immagine, $dir.$nome);
break;
case IMAGETYPE_PNG:
$immagine = imagecreatefrompng($nome_temporaneo);
imagepng($immagine, $dir.$nome);
break;
case IMAGETYPE_BMP:
$immagine = imagecreatefrombmp($nome_temporaneo);
imagebmp($immagine, $dir.$nome);
break;
}
#Creo il div dove gli assegno l'id per identificare con JQuery le imamgini appena caricate
?> <div id='<?php echo $n?>'>
<img src='<?php echo $dir.$nome?>' style='width:100px; height:100px'>
<input id='hidden<?php echo $n ?>' type='hidden' value='<?php echo $dir.$nome ?>'/>
<div onclick='togli("<?php echo $n ?>")'>Togli</div>
</div>
<div id='rimetti<?php echo $n ?>' onclick='rimetti("<?php echo $n ?>")' style='display:none'>Rimetti</div>
<?php
$n++;
#aumento la variabile inizializzata per il funzionamento dello while
}
?>
<div id='cancella_img'></div>
<input type='submit' value='carica' onclick='carica();void 0'/>
<?php
exit;
}
?>
<form action='' method='POST' enctype='multipart/form-data'>
<input type='file' name='file[]' multiple size ="60"/>
<input type='submit' name='sub' value='Carica'/>
</form>
[/PHP]
insert_immages.php
[PHP]
<?php
require_once("connetti.php");
if(isset($_POST['fine']))
{
#Inserisci questa funzioncina per leggere tutti i file contenuti nella cartella immagini
#che poi verranno inseriti nel db tramite una query grazie ad un for
function illustrazioni($cartella){
$foto=Array();
if(file_exists($cartella)){
$directory = opendir($cartella);
while (false !== ($file = readdir($directory))) {
if(is_file($cartella.$file)){
array_push($foto,$file);
}
}
$handle = closedir($directory);
}
sort($foto);
return $foto;
}
$foto_t=array();
$foto_t=illustrazioni("img_temp/");
$conta = count($foto_t);
for ($x=0; $x<$conta; $x++)
{
$immagine_t = "img_temp/$foto_t[$x]";
$immagine = "immages/$foto_t[$x]";
echo "<img src='".$immagine_t."' width='100px' height='100px'> ";
#questa variabile contiene il valore dell'url finale che si inserirà alla fine
#Sposto i file nella cartella temporanea in quella fissa
copy($immagine_t,'immages/'.$foto_t[$x]) or die('non si sposta la foto');
##infine elimino il file nella directory temporanea
unlink($immagine_t);
$insert_query = "INSERT INTO immagine(immagine) VALUES('".$immagine."')";
mysql_query($insert_query);
}
echo "Le immagini sono state inserite nel database con successo!";
}
mysql_close();
?>
[/PHP]
togli.php
[PHP]
<?php
require_once("connetti.php");
echo $_GET['img']." eliminata con successo!</div>";
#elimino il file con la funzione unlink()
unlink($_GET['img']);
?>
[/PHP]
Lo script così com'è fatto e con le sue cartelle delle immagini chiamate una img_tmp e l'altra immages, funziona correttamente, e viene anche memorizzato il link nel db. Solo che c'è a mio avviso qualche modifica da fare di cui non saprei come fare.
La prima, è che le thum vengono visualizzate all'instante dopo averle caricare
La seconda, l'upload delle immagini dovrebbe essere un po' più velocizzato
La terza, è la più importante le immagini dovrebbero essere raggruppate in un albulm e successivamente visualizzate andandoci sopra con il moise.
Chi mi può dare una mano a fare ciò ????? Spero di ricevere una vostra risposta, grazie.