Caricare immagini con scelta multipla e creare le

Inoltre, se io creo il nome dell'album per un tipo di raccoltoa foto, poi tutta la colonna riguardante "album" rimane vuota solo con il primo del titolo ????
ogni foto dovra essere associata ad un album

puoi modificare il campo album cosi
`album` set('ALTRO','PAESAGGI','ANIMALI') NOT NULL

e nel form prima di inserire l'immagine scegli l'album da un menu a tendina

è un esempio
 
Ciao

L'esempio mi attizza molto. E come si associano le foto agli album ??? Immagino tramite l'id dell'album. Hai per caso visto il codice modificato che mi da errore ??? Dove ho sbagliato nell'inserire l'if ???
 
E come si associano le foto agli album
la tabella è la stessa che hai fatto tu
tab.png
PHP:
<?php
require_once("connetti.php");
///inizializziamo il messaggio
$messaggio = "&nbsp;";
// estensioni ammesse
$estensioni = array("jpg", "png", "bmp", "pdf");
// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
$dir = getcwd() . "/img";
// verifichiamo che sia stato premuto il submit
if (isset($_POST['upload']) && $_POST['upload'] == "Carica immagine") {
    // recuperiamo l'album i controlli sarebbe da aumentare
    $album = mysql_real_escape_string($_POST['album']);
    // nome del file
    $nomefile = strtolower($_FILES["image"]["name"]);
    // recuperiamo l'esensione
    $estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION);
    // controlliamo il tipo immagine
    if (in_array(strtolower($estensionefile), $estensioni)) {
        // controllo caricamento
        if (is_uploaded_file($_FILES["image"]["tmp_name"])) {
            // spostiamo il file nella cartella immagini
            if (!move_uploaded_file($_FILES["image"]["tmp_name"], "$dir/$nomefile")) {
                $messaggio = "Impossibile spostare il file";
            } else {
                $q_i = mysql_query("INSERT INTO immagine(album,immagine) VALUES('$album','$nomefile')");
                if ($q_i) {
                    $messaggio = "Immagine caricata e memorizzata con successo";
                } else {
                    $messaggio = "Immagine caricata ma non memorizzata";
                }
            }
        } else {
            $messaggio = "Errore nell'upload del file.";
        }
    } else {
        $messaggio = "Tipo immagine non consentito";
    }
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Carica immagini</title>
        <style>
            .thumb {
                width:96px;
                height:96px;
                margin:0 5px;
            }
        </style>
    </head>
    <body>
        <form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
            <p><?php echo $messaggio ?></p>
            <p>Categoria: </p>
            <p><select name="album">
                    <option value="ALTRO">Altro</option>
                    <option value="ANIMALI">Animali</option>
                    <option value="PAESAGGI">Paesaggi</option>
                </select></p>
            <p>Selezione immagine: </p>
            <!-- Campo file di nome "image" -->
            <p><input name="image" type="file" size="40" enctype='multipart/form-data'/></p>            
            <!-- Pulsante -->
            <p><input name="upload" type="submit" value="Carica immagine" /></p>
        </form>
        <p>Immagini caricate</p>
        <?php
        // indico il percorso della cartella
        $d = dir(getcwd() . "/img");
        //ciclo il contenuto
        while ($entry = $d->read()) {
            if ($entry != "." && $entry != "..") {
                // se non è un altra cartella
                if (!is_dir("img/" . $entry)) {
                    // mostro l'immagine
                    echo "<img class='thumb' src='img/" . $entry . "' alt='img'/>";
                }
            }
        }
        $d->close();
        ?> 
    </body>
</html>
 
Ciao

Ok, Domani provo il codice che mi hai postato, ma sul tardi lo proverò. Che prima sto in giro. Così poi ti dico se vao meno. Grazie per ora e buona serata. Provato il codice, sei un piccolo genio insieme a bothgo, grazie mille. Mi sta caricando tutte le foto che avevo memorizzato in precedenza. Si può velocizzare il processo per caso ??? Considera che sta tutto sul nas e il nas è situato a roma. Forse chiedo la luna.
 
Ultima modifica:
Ciao

Ciao Cricric,

Allora ho eseguito ieri ed oggi il tuo capolavoro con le thumb e funzionano a meravgilia. Ora mi chiedevo, ma per selezionare na foto più di una sigolarmente cosa bisogna fare ???? E ovviamente memorizare sempr eil link sul db. Inoltre, invece di mettere un menu a tendine, l'utente può decidere il nome dell'album ???? Come semre grazie per la tua preziosa collaborazioen.
 
Ciao

Volevo ringraziare il moderatore che mi ha fatto la modifica del nickname. E ne approfittavo per sapere se avei qualche idea cricric o borgo per risolvere il problema delle foto con selezione multipla. Grazie.,
 
ciao
ricordati che "multiple" funzia solo con html5 e solo chon fire, opera e chrome, non con ie
poi secondo me diventa un po un casino perche $_FILES['imm'] diventa un array di array es.
imm['name'][0] => prima.jpg
imm['name'][1] => seconda.jpg ....
imm['type'][0] => image/jpeg
imm['type'][1] => image/jpeg ....
imm['tmp_name'][0] => C:\WINDOWS\TEMP\php1AA9.tmp
imm['tmp_name'][1] => C:\WINDOWS\TEMP\php1AAA.tmp ....
poi l'error ed il size
come puoi vedere provando lo scrpt sotto e guardando cosa ti restituisce il var_dump

PHP:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<?php
if(isset($_POST['invia'])){
var_dump($_FILES['imm']);
}

?>

<form action="#" method="post" enctype="multipart/form-data">
<input multiple="multiple" name="imm" type="file"><br>
<input name="invia" type="submit" id="invia" value="Invia">
</form>
</body>
</html>
 
Ciao

Ciao,

Mi sorge un dubbio, se c'è problema di array, come l'ha risolto il principiante che ha inventato facebook ??? Perchè su fb si caricano le immagini più di una contemporanea e non solo, c'è il problema che su internet parlano di selezione multipla ma senza la memorizzazione dei link su db, è quella la parte più difficile e ostica da risolvere,k secondo me, o sbaglio ????? Mi puoi fare un esempio per favore di un'immagine nell'array e con le cartelle temporanee, è quello che non riesco a comprendere bene.
 
ciao
come l'ha risolto il principiante che ha inventato facebook ???
se fossi bravo come lui adesso sarei alle bhamas a prendere il sole
Mi puoi fare un esempio per favore di un'immagine nell'array e con le cartelle temporanee
se provi lo script che ti ho postato vedi come si forma l'array
c'è il problema che su internet parlano di selezione multipla ma senza la memorizzazione dei link su db, è quella la parte più difficile e ostica da risolvere,
scusa ma non capisco cosa intendi
 
Ciao

Ciao,

Quellop che intendevo, nei vari esempi che si trovano su internet, anche quello vostro, c'è sia la selezione multipla, quindi con tasto ctrl+mouse, e sia selezione singola e poi ci sono le thumb. Ora quello che intendevo dire io, è che non si trovano mai almeno io non sono riuscito a trovarlo, esempi completi conselezione multipla (ctrl+tasto mouse) e il salvataggio delle foto sul database o meglio il link, che ogni volta le puoi richiamare. Spero di essere stato più chiaro.
 
ciao
internet non è il pozzo di san patrizio, quindi non è possibile che abbia un esempio per tutto e su tutto.
comunque tu l'hai, basta adattare quanto ti ha fornito criric per caricare le immagini all'uso dell'array.
eventualmente chiedigli come fare l'adattamento, visto che lo script l'ha fatto lui dovrebbe con facilità aggiornarlo
 
Ciao

Si vero,

Anche tu hai ragione. Anzi che si trova parecchia roba su php e html. Chiederò a lui come poterlo modificare. Ancora non ho potuto provare il tuo scrip, perchè mi è andato in palla il pc e lo debbo ripristinare. Spero che entro stasera riesco a provarlo. Comunque grazie davvero per l'aiuto incredibile che ho trovato su questo forum.
 
Ciao

ciao
ricordati che "multiple" funzia solo con html5 e solo chon fire, opera e chrome, non con ie
poi secondo me diventa un po un casino perche $_FILES['imm'] diventa un array di array es.
imm['name'][0] => prima.jpg
imm['name'][1] => seconda.jpg ....
imm['type'][0] => image/jpeg
imm['type'][1] => image/jpeg ....
imm['tmp_name'][0] => C:\WINDOWS\TEMP\php1AA9.tmp
imm['tmp_name'][1] => C:\WINDOWS\TEMP\php1AAA.tmp ....
poi l'error ed il size
come puoi vedere provando lo scrpt sotto e guardando cosa ti restituisce il var_dump

PHP:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<?php
if(isset($_POST['invia'])){
var_dump($_FILES['imm']);
}

?>

<form action="#" method="post" enctype="multipart/form-data">
<input multiple="multiple" name="imm" type="file"><br>
<input name="invia" type="submit" id="invia" value="Invia">
</form>
</body>
</html>


Ciao Borgo,

Finalmente ho ripristinato il pc e funziona tutto più velocemente. Si era leggermente incasinato. Ho potuto provare stasera, perchè ho finito da poco di installare il tutto, il tuo scrip, e il var_dump, mi restituisce la seguente scritta:

PHP:
array(5) { ["name"]=> string(39) "488266_432683443442047_1248303808_n.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "/var/spool/php/phpm1jPHc" ["error"]=> int(0) ["size"]=> int(119110) }

Cosa vuol dire ciò ???? Spero che mi spieggherai. Aspetto come al solito tue notizie. Grazie.
 
ciao
per capire quel var_dump, cancella il precedente e prova questo (sempre che il tuo bw supporti html5 e che non sia ie)

PHP:
</head>
<body>
<?php
if(isset($_POST['invia'])){
var_dump($_FILES["imm"]);echo "<br>";
$immagini=$_FILES["imm"];
	foreach($immagini as $ch_1 => $va_1){
		if(is_array($va_1)){
			foreach($va_1 as $ch_2 => $val_2){
				echo "imm[$ch_1][$ch_2] = $val_2<br>";
			}
		}
	}
}
?>
<form action="#" method="post" enctype="multipart/form-data">
<input multiple="multiple" name="imm[]" type="file"><br>
<input name="invia" type="submit" id="invia" value="Invia">
</form>
</body>
</html>

se usi IE il multiple non funzia
 
Ciao

Ciao Grazie,

Sono tornato ora dai vari giri. io adopero Firefox, ultima versione, ne crhome e nie mi piacciono. Però mio nipote adopera ie e mio padre adopera crhome. Benchè mio padre abbia anche firefox. Comunque, non credo che sia un grosso problema. Perchè poi minipote vorrebbe caricare i video come fa facebook da youtube. Quindi presumo che i video sia un'altra storia. Ma a me attualmente interessano le immagini. Ora provo e poi ti dico il risultato.
 
ciao
non è che con ie non funzi, ma su ie è come se multiple="multiple" non esistesse e carica un file alla volta (che siano immagini, testi o altro)
 
Ciao

Capito,

Ma una curiosità, per i video è lo stesso meccanismo delle immagini ???? Ora mi da il seguente risultato. Ho caritato due foto:

PHP:
array(5) { ["name"]=> array(2) { [0]=> string(19) "100_3899_remake.jpg" [1]=> string(15) "11082010120.jpg" } ["type"]=> array(2) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" } ["tmp_name"]=> array(2) { [0]=> string(24) "/var/spool/php/php0WqtYI" [1]=> string(24) "/var/spool/php/php1jbLJI" } ["error"]=> array(2) { [0]=> int(0) [1]=> int(0) } ["size"]=> array(2) { [0]=> int(1244330) [1]=> int(787251) } }
imm[name][0] = 100_3899_remake.jpg
imm[name][1] = 11082010120.jpg
imm[type][0] = image/jpeg
imm[type][1] = image/jpeg
imm[tmp_name][0] = /var/spool/php/php0WqtYI
imm[tmp_name][1] = /var/spool/php/php1jbLJI
imm[error][0] = 0
imm[error][1] = 0
imm[size][0] = 1244330
imm[size][1] = 787251

Domanda di prima, cosa vuol dire ?? Che le ha memorizzate, ma non nel db o sbaglio ????
 
Ultima modifica:
ciao
ma scusa vedi nello script qualche riferimento a mysql (per mettere nel db) o al move_upload (per caricare i file)?
i pc possono anche essere potenti, ma ancora non hanno la capacità di leggere nel pensiero quello che vorresti fare.
per quanto riguarda se è lo stesso per le immagini e/o i video allo script "non glene può fregà de meno" di quello che carichi.
potresi caricare anche virus per infettare altri pc
lo scipt in questo caso VISUALIZZA solamente i dati di quello che hai messo nell'input.
vuol dire che hai immesso due immagini chiamate una 100_3899_remake.jpg e l'altra 11082010120.jpg , entrambe di type image/jpeg, con due tmp_name, non ci sono errorei [0] e due grandezze diverse.
ora al posto del var_dump devi sostituire tutto l'ambaradan che ti ha postato criric (ti conviene contattarlo)
 

Discussioni simili