Ciao ho creato un upload di immagini che serve per la galleria. Le immagini vengono visualizzate bene peró non riesco a togliere l'aggiunta della stessa immagine caricata precedentemente quando ricarico la pagina. Cioé quando ricarico la pagina mi aggiunge l' immagine caricata precedentemente.
Questo é il mio codice per l'upload e per la galleria.
Quando carico l'immagine mi riporta nella pagina gallery.php, peró io voglio che invece di portarmi a quella pagina mi riporti alla pagina photo_gallery.php. Nella pagina photo_gallery.php ho un button che quando uno ci clicca gli appare un lightbox con l'upload per caricare i file, io voglio che l'immagine caricata appare su photo_gallery.php ma dietro il lightbox. Oppure é possibile mettere un div nel <form action="div"> ?
Questo é il mio codice per l'upload e per la galleria.
HTML:
//photo_gallery.php
<html>
<head>
</head>
<body>
<form action="gallery.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Uplod photos" >
</body>
</html>
</form>
HTML:
//gallery.php
<?php
if(isset($_FILES['file']['tmp_name'])) {
$fileCount = getNextNumber();
$newName = 'users/'. $login->get_username(). "/photo_gallery/" . ( $fileCount) . '.jpg';
move_uploaded_file($_FILES['file']['tmp_name'], $newName);
mysql_query("INSERT INTO `photogallery` (`username`, `photo`) VALUES('$username', '$newName')") or die(mysql_error());
/* function: generates thumbnail */
function make_thumb($src,$dest,$desired_width) {
/* read the source image */
$source_image = imagecreatefromjpeg($src);
$width = imagesx($source_image);
$height = imagesy($source_image);
/* find the "desired height" of this thumbnail, relative to the desired width */
$desired_height = floor($height*($desired_width/$width));
/* create a new, "virtual" image */
$virtual_image = imagecreatetruecolor($desired_width,$desired_height);
/* copy source image at a resized size */
imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
/* create the physical thumbnail image to its destination */
imagejpeg($virtual_image,$dest);
}
/* function: returns files from dir */
function get_files($images_dir,$exts = array('jpg')) {
$files = array();
if($handle = opendir($images_dir)) {
while(false !== ($file = readdir($handle))) {
$extension = strtolower(get_file_extension($file));
if($extension && in_array($extension,$exts)) {
$files[] = $file;
}
}
closedir($handle);
}
return $files;
}
/* function: returns a file's extension */
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
/** settings **/
$images_dir = 'users/'. $login->get_username(). "/photo_gallery/";
$thumbs_dir = 'users/'. $login->get_username(). "/photo_gallery_thumbs/";
$thumbs_width = 200;
$images_per_row = 3;
/** generate photo gallery **/
$image_files = get_files($images_dir);
if(count($image_files)) {
$index = 0;
foreach($image_files as $index=>$file) {
$index++;
$thumbnail_image = $thumbs_dir.$file;
if(!file_exists($thumbnail_image)) {
$extension = get_file_extension($thumbnail_image);
if($extension) {
make_thumb($images_dir.$file,$thumbnail_image,$thumbs_width);
}
}
echo '
<a href="',$images_dir.$file,'" class="photo-link smoothbox" rel="gallery">
<img src="',$thumbnail_image,' " id="photo" rel="lightbox" /></a>';
if($index % $images_per_row == 0) { echo '<div class="clear"></div>'; }
}
echo '<div class="clear"></div>';
}
else {
echo '<p>There are no images in this gallery.</p>';
}
}
function getNextNumber() {
$count = (int)file_get_contents('yourFile.txt');
$count+=1;
file_put_contents('yourFile.txt',$count);
return $count;
}
?>
Quando carico l'immagine mi riporta nella pagina gallery.php, peró io voglio che invece di portarmi a quella pagina mi riporti alla pagina photo_gallery.php. Nella pagina photo_gallery.php ho un button che quando uno ci clicca gli appare un lightbox con l'upload per caricare i file, io voglio che l'immagine caricata appare su photo_gallery.php ma dietro il lightbox. Oppure é possibile mettere un div nel <form action="div"> ?