Caricare immagini con scelta multipla e creare le

paperinik4

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

Nuovo proble, nuova discussione. Avrei bisogno di caricare delle immagini nei seguenti formati: jpg, png, bitmap, tif, gif jpeg (non so se è uguale a jpg), pcx. Nel codice, si dovrebbe creare un album dargli il titolo e poi dal pc caricare le foto senza limiti di MegaByte. Inoltre, le immagini si dovrebbero selezionare con il fatidico ctrl+ tasto del mouse, per careicarle più di una. Considerate, che le immagini posso provenire anche direttamente dallo scanner. Quindi potrebbero pesare. Mi potete dare unamano un suggerimeto per favore ??? Non ho codice attualmente a disposizione da postare, purtroppo. L'unico che ho trovato, perchè mi so ricordato è il seguente che posto, ma non mi piace come funziona:

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        Selezione immagini: <input type="file" name="img" multiple="multiple" />
    <!-- Campo file di nome "image" -->
    <input name="image" type="file" size="40" />
    <br /><br />
    <!-- Pulsante -->
    <input name="upload" type="submit" value="Carica immagine" />
</form>
    </head>
    <body>
        <?php
do {

    
    // Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
      break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
      break;
    }
} while (false);
echo $msg;
?>
    </body>
</html>

Spero in un vostro aiuto grazie.
 
Salve a tutti,

Nuovo proble, nuova discussione. Avrei bisogno di caricare delle immagini nei seguenti formati: jpg, png, bitmap, tif, gif jpeg (non so se è uguale a jpg), pcx. Nel codice, si dovrebbe creare un album dargli il titolo e poi dal pc caricare le foto senza limiti di MegaByte. Inoltre, le immagini si dovrebbero selezionare con il fatidico ctrl+ tasto del mouse, per careicarle più di una. Considerate, che le immagini posso provenire anche direttamente dallo scanner. Quindi potrebbero pesare. Mi potete dare unamano un suggerimeto per favore ??? Non ho codice attualmente a disposizione da postare, purtroppo. L'unico che ho trovato, perchè mi so ricordato è il seguente che posto, ma non mi piace come funziona:

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        Selezione immagini: <input type="file" name="img" multiple="multiple" />
    <!-- Campo file di nome "image" -->
    <input name="image" type="file" size="40" />
    <br /><br />
    <!-- Pulsante -->
    <input name="upload" type="submit" value="Carica immagine" />
</form>
    </head>
    <body>
        <?php
do {

    
    // Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
      break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
      break;
    }
} while (false);
echo $msg;
?>
    </body>
</html>

Spero in un vostro aiuto grazie.
Devo aggingere una cosa, mi servirebbe costruire anche le Salve a tutti,

Nuovo proble, nuova discussione. Avrei bisogno di caricare delle immagini nei seguenti formati: jpg, png, bitmap, tif, gif jpeg (non so se è uguale a jpg), pcx. Nel codice, si dovrebbe creare un album dargli il titolo e poi dal pc caricare le foto senza limiti di MegaByte. Inoltre, le immagini si dovrebbero selezionare con il fatidico ctrl+ tasto del mouse, per careicarle più di una. Considerate, che le immagini posso provenire anche direttamente dallo scanner. Quindi potrebbero pesare. Mi potete dare unamano un suggerimeto per favore ??? Non ho codice attualmente a disposizione da postare, purtroppo. L'unico che ho trovato, perchè mi so ricordato è il seguente che posto, ma non mi piace come funziona:

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        Selezione immagini: <input type="file" name="img" multiple="multiple" />
    <!-- Campo file di nome "image" -->
    <input name="image" type="file" size="40" />
    <br /><br />
    <!-- Pulsante -->
    <input name="upload" type="submit" value="Carica immagine" />
</form>
    </head>
    <body>
        <?php
do {

    
    // Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
      break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
      $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
      break;
    }
} while (false);
echo $msg;
?>
    </body>
</html>

Spero in un vostro aiuto grazie. Un ultima cosa, piccola dimenticanza, si dovrebbe creare anche le thumbnail, in modo che quando si vedono le immagini, si possono cliccare e ingrandire. Grazie ancora (tipo fb). Scusate se ho fatto così, ma non mi da la possibilità di modificare il messaggio scritto.
 
ciao
posso propriti anche un form che faccia il caffe :) le tumb sono un altro problema.
una domanda comunque: nel form non ti sembra che manchi qualcosa?
 
Ciao

Ciao,

Da come mi dici sembrerebbe di si. Avevo preso l'esempio da qualche parte su internet all'epoca, non ricordo dove purtroppo. Tu me lo puoi sistemare ???? Con le tumb ??? o come diavolo si chiamano ????? Non mi serve il caffè ehehehehe. Di questo periodo lo prendo freddo ahahahaha. :P Battuta a parte.
 
Hai messo il form dentro la head
Non hai aperto il tag <form>
Il php viene eseguito cmq al caricamento della pagina
Direi un disastro
Comincia con capire come caricare una sola immagine
prova questo:
PHP:
<?php
//inizializziamo il messaggio
$messaggio = "&nbsp;";
// estensioni ammesse
$estensioni = array(".jpg", ".png", ".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") {
    // nome del file
    $nomefile = $_FILES["image"]["name"];
    // controlliamo il tipo immagine
    if (in_array(substr($nomefile, -4), $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{
                $messaggio = "Immagine caricata con successo";
            }
        } 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>
    </head>
    <body>
        <form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
            <p><?php echo $messaggio ?></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>
    </body>
</html>
 
Ultima modifica:
Ciao

Ciao,

Sono un gran pippone, mi devi perdonare. Ti ringrazio di avermi dato una dritta, dove hai dimenticato else ????? E una cosa, quando vai in ferier ?? Per sapere se posso contare sempre su di te ??? In ultimo, volevo sapere se era possibile come amministratore del sito, modificare il mio username da paperini4 a paperinik4. Aspetto tue notizie, grazie ancora e buona serata.L'ho provato ora, e mi dail seguente risultato. Sicuramente devo vfcreare una cartella:

Warning: move_uploaded_file(/volume1/web/utenti/fabio/ProvaUpLoad/img/DSC01703---ridotta.jpg): failed to open stream: No such file or directory in /volume1/web/utenti/fabio/ProvaUpLoad/upload.php on line 23 Warning: move_uploaded_file(): Unable to move '/var/spool/php/phpLJQWjr' to '/volume1/web/utenti/fabio/ProvaUpLoad/img/DSC01703---ridotta.jpg' in /volume1/web/utenti/fabio/ProvaUpLoad/upload.php on line 23

Impossibile spostare il file
 
Ultima modifica:
dove hai dimenticato else ?????
l'avevo aggiungto cmq
quando vai in ferie ??
ferie? non conosco questa parola
modificare il mio username da paperini4 a paperinik4
Scriv un meassaggio in Supporto Mr.Webmaster e attendi
Sicuramente devo vfcreare una cartella
come ho scritto nei commenti la cartella deve esistere Se lo lasci come l'ho scritto io nella stessa cartella dove metti lo script ci deve essere una cartella che si chiama img
 
Ciao

Ciao,

Innanzi tutto, buona domenica. Secondo poi, grazie per le info. Terzo, devo creare la cartella img. Sicuramente scriverò al supporto mrwebmaster. Purtroppo è stato un errore di battitura quando mi sono iscritto all'epoca. Ora verifico la q1uestione della cartella.
 
Ciao

Allora,

Ho provato lo script, mi dice "immagina caricata con successo", quindi funziona. Ora bisgna provvedere a memorizzare quest'immagine sul db ossia il link dell'immagine giusto ????
 
Ciao

Ciao Cricric,

Nel frattempo, ho provato il codice e funziona. L'ho pure leggermente modificato in questa maniera:

PHP:
<?php

require_once("connetti.php");

?>

<?php
///inizializziamo il messaggio
$messaggio = "&nbsp;";
// estensioni ammesse
$estensioni = array(".jpg", ".png", ".bitmap", ".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") {
    // nome del file
    $nomefile = $_FILES["image"]["name"];
    // controlliamo il tipo immagine
    if (in_array(substr($nomefile, -4), $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{
               
                      
      $messaggio = "Immagine caricata e memorizzata con successo";
      $q_i=mysql_query("INSERT INTO immagine(immagine) VALUES('$nomefile')");
      var_dump($q_i);
      
      }
        } 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>
    </head>
    <body>
        <form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>
            <p><?php echo $messaggio ?></p>
            <p>Selezione immagine: </p>
            <!-- Campo file di nome "image" -->
            <p><input name="image" type="file" size="60" enctype='multipart/form-data'/></p>            
            <!-- Pulsante -->
            <p><input name="upload" type="submit" value="Carica immagine" /></p>
        </form>
    </body>
</html>

Come vedi, la modifica effettuata, a parte ".bitmap", è la memorizzazione del link nel db. E sembra funzionare. L'unica cosa è che mi da errore quando carico un'immagine ad alta defizione. Si potrebbe eliminare i limiti oppure ci sono dei limiti prefissati ???? Inoltre volevo capire una cosa. Io ho ho fatto un db chiamato immagine. Questa è la seguente tabella che ho creato:

PHP:
create table immagine (

id       		 INT UNSIGNED NOT NULL AUTO_INCREMENT,
album                VARCHAR(40) NOT NULL,
immagine           VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);


Volevo sapere da te se era giusta, oppure ha bisogno di qualche correzione ??? 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 ???? Ti posto un'immagine se ci riesco. Così forse capisci meglio cosa intendo.Vedi l'allegato 1311 Come vedi, dall'immagine c'è una foto chiamata: DSC01703.JPG e pesa: 2,34 MB (2.456.749 byte). Questa con il tuo codice me la rifiuta. La stessa, ma di dimensioni ridotte, me la prende. Aspetto tue notizie come al solito. Grazie. Un ultima cosa, se uno volesse modificare il nome dell'immagine è fattibile quando una volta è caricata ?????
 
non ti carica la foto probabilmente perchè l'estensione è scritta in maiuscolo
modifica qui lo script
PHP:
// controlliamo il tipo immagine
    if (in_array(substr(strtolower($nomefile), -4), $estensioni)) {
questo controllo verifica che gli ultimi 4 caratteri del nome file siano presenti nell'array che abbiamo creato, aggiungendo strtolower() proma di ciclare l'array trasforma tutto in minuscolo, dovrebbe funzionare prova
quindi bitmap che hai aggiunto tu non verrà mai validato (a parte che non ho mai visto un file con estensione bitmap semmai .bmp)
PHP:
// estensioni ammesse
$estensioni = array(".jpg", ".png", ".bmp", ".pdf");

un passo all avolta , ora mi leggo il resto che hai scritto
 
Ciao

Ciao,

Vi ringrazio a tutte e due e scusare l'errore di battitura sull'estensione della foto. Sono tutti in minuscolo se non erro. Comunque provo a cambiarli nome in mnuscolo. Tanto non mi cambia niente.

P.S.: C'avevi ragione è scritto tutto in maiuscolo. Provo a cambiarlo. Grazie. Ma lo dovrbebe prendere comunque, cosa gli cambia a lui ????
 
ho appena letto che nel file di configurazione di php c'è il parametro upload_max_filesize che di default è impostato a 2M.

quindi o lo modifichi o meglio limiti le dimensioni dell'immagine
 
borgo italia
ciao
forse per l'estenzione è meglio
Codice PHP:
//...
if (in_array(strtolower(pathinfo($nomefile, PATHINFO_EXTENSION)), $estensioni)) {

si molto meglio, bisogna pero togliere i punti dall array
PHP:
$estensioni = array("jpg", "png", "bmp", "pdf");
 
ciao

Ciao,

Ah, bene, a quanto lo soppo modificare ???? perchè molte immagini che cerranno caricate saranno prese dallo scanner che come tu ben sai sono pesantine. Sono foto di cirtuiti stampati e di compinenti che devono essere belli chiari. Inoltre ho provato a modificare sia ilnome del file che l'estensione ed effettivamente faceva distinzione tra maiuscolo e minuscolo. Quindi ora la foto me l'ha caricata e salvata sul db. Ora rimane solo da risolvere il problema della selezione delle foto multiple e di come vengono memorizzate nel db. Hai visto l'immagine che ti ho inviato ??? Non so se mi osno spiegato bene nel post precedente il dubbio qual'era.
 
Ciao

si molto meglio, bisogna pero togliere i punti dall array
PHP:
$estensioni = array("jpg", "png", "bmp", "pdf");


Allora io ho apportato questa modifica suggeritami sia da borgo che da te:

PHP:
if (in_array(strtolower(pathinfo($nomefile, PATHINFO_EXTENSION)), $estensioni)) { //qua mi da cartelllino giallo

// estensioni ammesse
$estensioni = array("jpg", "png", "bmp", "pdf");

}else{
    
    echo "Estensione errata dell'immagine.";
    
}

Correggetemi se è errata per favore.
 
Correggetemi se è errata per favore.
la sintassi è corretta
verifica di averla messa nel posto giusto
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") {
    // 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 {

                $messaggio = "Immagine caricata e memorizzata con successo";
                $q_i = mysql_query("INSERT INTO immagine(immagine) VALUES('$nomefile')");
//                var_dump($q_i);
            }
        } 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 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>

Ti ho aggiunto un ciclo per visualizzare lae immagini caricate
 
Ultima modifica:

Discussioni simili