Risuscito un vecchio script di upload immagine multiplo

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti sopratutto a cricric,


Mi rivolgo sopratutto a lui perchè un po' di tempo fa mi corresse uno script cvhe ora sembra non funzionare più. Allora lo script in causa è l'upload immagini con selezione multipla ossia premendo ctrl+ tasto dx del mouse si possono selezionare più di una foto. Questo è lo script

upload.php

PHP:
<?php
require_once("connetti.php");

if(!isset($_POST['sub'])){
?>

<?php
}else{
	///inizializziamo il messaggio
	$messaggio = "&nbsp;";
	// estensioni ammesse
	$estensioni = array(".jpg", ".png", ".bmp", ".gif",".pdf");
	// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
	$dir = getcwd()."/img";
	// verifichiamo che sia stato premuto il submit
    //prelevo i dati del file
	$name = $_FILES['file']['name'];
	$tmp_name = $_FILES['file']['tmp_name'];
	//inizio una variabile per far funzionare il while che
	//servirà a far funzionare la visualizzazione di tutte le
	//immagini
	$i=0;
	//dobbiamo essere sicuri che  la variabile "i" raggiunga il 
	//numero dei file nell'array creato col form
	
	while($i<=count($name)-1)
	{
		//controlliamo in output quali file ha letto
		//spostiamo banalmente le immagini nelal directory
		if (in_array(substr(strtolower($name[$i]), -4), $estensioni)) {
			echo "fatto: ".$name[$i]." <br/>";
			move_uploaded_file($tmp_name[$i],$dir.'/'.$name[$i]);
			//inseriamo banalmente il tutto nella tabella del db
			mysql_query("INSERT INTO immagine(immagine) VALUES('".$name[$i]."')") or die ($messaggio = "Errore nell'upload del file.");
			
                        $messaggio = "Immagine/i caricata/e-";
                }
		 else {
			$messaggio = "Tipo immagine non consentito";                    
		}
		//visualizzo  le imamgini caricate:
		echo "<img src='".$dir.'/'.$name[$i]."' width='180px' height='180px'> ";
		$i++;
                
                
                }
	echo $messaggio;
}



?>

<form action='' method='POST' enctype='multipart/form-data'>
	<input type='file' name='file[]' multiple size ="60"/>
	<input type='submit'  name='sub' value='Carica'/>
</form>

Eseguendolo, sembra che memorizzi l'immagine, ma in realtà mi da questo messaggio qua:

fatto: l'imitabile paperinik.jpg
Errore nell'upload del file.

E alla fine se si va a vedere nel db non viene memorizzato niente. Mi puoi dare una mano a correggere o meglio a capire dove sta l'errore ??? Inoltre mi servirebbe anche una mano per ampliarlo. Ma intanto un passo alla volta. Spero in un vostro aiuto come al solito, grazie.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
deve essere modificato!
non mi sono mai posto il problema della selezione multipla
non ne trovo l'utilita, ho sempre fatto caricare un immagine alla volta
a te serve davvero?
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao Cricric,

Si mi farebbe comodo a dire il vero e sopratutto senza limiti di mb. In quanto quando devo andare a prelevare le immagini da una cartella prese dallo scanner, farle una alla volta diventa un po' palloso (a mio avviso) :p Però anche quel codice che avevi postato tu un po' di tempo fa prima dell'estate, se si potesse modificare.... Io l'ho riprovato ma non ho capito cos'è successo si è sputtanato tutto.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Testato con WAMP su FF12, non ho idea dell'effetto su browser piu vecchi, sicuramente è da ottimizzare
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 e uniamo le informazionei sulle immagini
    $infoimages = array_combine($_FILES["image"]['name'], $_FILES["image"]['tmp_name']);
    // scorriamo l'array
    foreach ($infoimages as $k => $v) {
        // nome del file
        $nomefile = strtolower($k);
        // recuperiamo l'esensione
        $estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION);
        // controlliamo il tipo immagine
        if (in_array(strtolower($estensionefile), $estensioni)) {
            // controllo caricamento
            if (is_uploaded_file($v)) {
                // spostiamo il file nella cartella immagini
                if (!move_uploaded_file($v, "$dir/$nomefile")) {
                    $messaggio = "Impossibile spostare il file";
                } else {
                    $messaggio = "Immagini/e caricata e memorizzata con successo";
                    $q_i = mysql_query("INSERT INTO immagine(immagine) VALUES('$nomefile')");
                }
            } 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>Selezione una o piu immagini: </p>
            <!-- Campo file di nome "image" -->
            <p><input name="image[]" type="file" size="40" multiple="multiple"/></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>
Paperinik4 ha scritto:
Io l'ho riprovato ma non ho capito cos'è successo si è sputtanato tutto.
a forza di togliere parti di codice non ti stava rimanendo piu niente

ps:
i limiti di peso dipendono dalle impostazioni del server e dal buon senso
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Quindi ora dovrebbe funzionare ??? Che intendi dal buon senso ???? Considerando che le immagini vengono caricati dai cellulari, scanner e macchinette digitali.... Perdonami, mi spieghi cos'è FF12 ??? E' un caccia bombardiere che abbiamo comprato di recente 90mila€ ?????
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Ho riprovato il tuo codice. A funzionare sembra che funzioni. ma poi vado a vedere i db e risulta vuoto, e l'immagine non viene caricata nella thumb. ti mostro le immagini sia del db e sia di quello ch emi compare a schermo. Aspetto tuoi pareri. Le cartelle sono giuste :p
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Salve a tutti,

Ciao cricric,

Ora pare che dopo le dovute modifche fatte al codice funzioni. Mi lascia perplesso una cosa. Quando seleziono una sola immagine, questa immagine non viene memorizzata nel db e tanto meno me la fa vedere. Visto e considerato che uno potrebbe solo avere la necessità di memorizzare un'immagine, comemai fi fa ciò ??? Invece se memorizzo più di una, le fa vedere tutte quante, se c'è il doppione non lo agginge ma al limite aggiunge l'immagine nuova, però la prima immagine selezionata singola non la fa vedere. Ti mando l'immagine di quello che succede così se mi sono spiegato mala puoi capire meglio e forse darmi una spiegazione. Grazie.
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 Esportare testi da un vecchio progetto fatto con Adobe Director Mac e Software 0
K Problema di indicizzazione con dominio vecchio vuoto SEO e Posizionamento 2
tucu49 Ciao! sono un vecchio... Presentati al Forum 3
N [Apache] redirect 301 da vecchio a nuovo sito Apache 0
S Vecchio articolo registrazione utenti, errore MySQL PHP 2
B Stilizzazione vecchio logo, come fare?? Photoshop 3
P Aggiornamento vecchio sito Webdesign e Grafica 2
C Prelevare i record che appartengono al giorno più vecchio del mese. PHP 11
glm2006ITALY Progetto vecchio stile: NegoziAcquari.it Presenta il tuo Sito 6
Dmarco Problema con la pagina iniziale del vecchio sito SEO e Posizionamento 2
Eliox Restilyng vecchio sito Presenta il tuo Sito 11
L script vecchio .. farlo funzionare su 5.3 PHP 6
P Grafica vecchio stile Discussioni Varie 22
B Creazione Forum e migrazione di quello vecchio. PHP 1
andreas88 Valutazione economica vecchio PC Hardware 5
borgo italia errore o dream troppo vecchio? HTML e CSS 2
A Un nuovo metodo per aumentare le visite al sito sfruttando un vecchio principio Guadagnare col Sito 1
F cancellazione sito vecchio/pubblicazione sito nuovo HTML e CSS 5
G Nuovo computer con Vista più lento del vecchio XP? Windows e Software 9
D vecchio FREE HAND cercasi Webdesign e Grafica 1
peppoweb Dell annuncia: Addio caro vecchio floppy Hardware 0
F Somma di più tabelle da script Javascript 0
L Script per convertire numeri in parole Javascript 2
H Eliminazione script. Photoshop 0
S Script Google Translate scomparso HTML e CSS 3
P lanciare script asp (o php) da jquery Javascript 1
G Script notifiche dekstop aiuto Javascript 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
P Passare solo alcuni parametri a script per CSV PHP 0
M Collegamento tra form html e script php PHP 4
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
P Script upload immagini jQuery 0
M Premature end of script headers PHP 1
Cosina script data aggiornamento pagina Javascript 1
R Distribuire uno Script "Facebook Auto Post" PHP 0
F Creazione script Tv Presentati al Forum 1
N Script elenco file HTML HTML e CSS 5
felino PHP e script generazione file excel PHP 2
MarcoGrazia Se non sai se riceverai da GET o da POST, puoi verificarlo e far scegliere allo script. Snippet PHP 0
Beppe2 Ritardare esecuzione script Javascript 2
R Primo script in PHP / CSS PHP 4
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
T script jquery non funziona più dopo il passaggio a MVC jQuery 5
F Aiuto java script Javascript 2
Max 1 [PHP] Script che funziona in locale e non online PHP 16
K Help: problema con uno script di booking in php! PHP 0
O [PHP] inviare dati da form e script ajax PHP 0
P [PHP] Aggiungere un mio script a prestashop? PHP 10

Discussioni simili