Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Ridimensionare e salvare le immagini in una cartella

    Ciao spero che qualcuno mi possa aiutare perchè sto impazzendo per far funzionare questa cosa.
    Il seguente codice mi permette di inserire in una cartella che ha il nome dell'ID dell'annuncio, le immagini caricate dal seguente form :

    <?php
    for($i=0;$i<3;$i++){$num=$i+1;
    print"<label>inserisci immagine $num <input type='file' name='foto$i' id='$i'/></label>
    \n";
    }
    ?>


    Questo è il codice per inserire l'annuncio nel database, prelevare l'Id dell'annuncio, creare una cartella che ha per nome l'Id dell'annuncio e inserire le foto provenienti dal form di upload :

    $last_id = mysql_insert_id();

    for($i=0;$i<3;$i++)
    {
    if(isset($_FILES['foto'.$i]))
    {
    //creo la cartella che ha per nome il titolo dell'annuncio
    @mkdir($last_id);
    $num=$i+1;
    $file=$_FILES['foto'.$i];
    $nome= $file['name'];
    $path="$last_id/".$nome;
    $vett=explode("/",$file['type']);
    $tipo=$vett[0];
    @move_uploaded_file($file['tmp_name'],$path) or die("errore upload, controllare percorso");
    print"immagine $num caricata con successo;
    ";
    }
    }




    OK fin qui tutto ok! Come faccio a ridimensionare le immagini che salvo nella cartella?
    Ho provato con vari tutorial ma per un motivo o per l'altro non sono riuscito ad integrare il codice.
    Qualcuno può aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    così le metti tutte nella stessa cartella.. se ti porti appresso invece lo script di creazione della cartella delle miniature puoi anche metterle in cartelle separate..
    Non ho messo i controlli per vedere se è un jpg, gif o png..

    Codice PHP:
    $minia $_SERVER['DOCUMENT_ROOT'] .  "miniature/";
    $dim 140;

    list(
    $width$height$type$attr) = getimagesize($path);
            
            
            
    // Creo la versione 150*n dell'immagine (thumbnail)
            
    $numero = ($dim/$width);
            
    $thumb imagecreatetruecolor($width*$numero$height*$numero);
            
    $source imagecreatefromjpeg($abpathoriginali "/" $_FILES['img1']['name']);
            
            
    imagecopyresampled($thumb$source0000$width*$numero$height*$numero$width$height);
            
            
    // Salvo l'immagine ridimensionata
            
    imagejpeg($thumb$minia "/" .$file65); // 65 è la qualità dell'immagine, da 0 a 100 
    con questo ti crei una miniatura ridimensionata e proporzionata di 140 pixel di larghezza.. ovviamente puoi cambiare tutto..
    vedi se funziona..

  3. #3
    Ciao, grazie per l'aiuto.
    Ho un pò le idee confuse. Il codice che ho scritto prima funziona, ma salva le immagini con dimensioni reali. A me servirebbe ridimensionare l'immagine e poi salvarla.
    Detto questo ho provato ad inserire le funzioni imagecreatetruecolor, imagecreatefromjpeg e imagecopyresampled ma non sono riuscito a farle funzionare.
    Il tuo codice può essere integrato nel mio?
    Grazie ancora per il prezioso aiuto!

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..in teoria bastava che facevi copia e incolla all'interno del tuo ciclo..
    devi solo creare la cartella miniature e dargli gli opportuni permessi..

  5. #5
    Scusami. Devo sostituire il tuo codice con il mio? O semplicemente basta che copio il tuo codice dopo il mio? Non voglio salvare le immagini nella cartella miniature. Per ogni annuncio creo una cartella di volta in volta e ci salvo dentro le immagini.

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    il mio va appresso al tuo.

    se vuoi utilizzare delle sottocartelle invece di
    $minia = $_SERVER['DOCUMENT_ROOT'] . "miniature/";
    fai
    $minia = $_SERVER['DOCUMENT_ROOT'] . "miniature/" . $last_id;

    e dentro miniature ti creerà delle sottocartelle con gli id..

  7. #7
    HO SCRITTO QUESTO :

    if (mysql_query($query, $connessione))
    {
    $last_id = mysql_insert_id();
    }
    for($i=0;$i<3;$i++)
    {
    if(isset($_FILES['foto'.$i]))
    {
    //creo la cartella che ha per nome il titolo dell'annuncio
    //@mkdir($last_id);
    $num=$i+1;
    $file=$_FILES['foto'.$i];
    $nome= $file['name'];
    $path="$last_id".$nome;
    $vett=explode("/",$file['type']);
    $tipo=$vett[0];
    if($tipo!="image"){}//non mi carico file che non sono immagini [img]images/smilies/smile.gif[/img]
    else
    {
    @move_uploaded_file($file['tmp_name'],$path) or die("errore upload, controllare percorso");
    print"immagine $num caricata con successo;
    ";
    }//fine caricamento
    $minia = $_SERVER['DOCUMENT_ROOT'] . "miniature/" . $last_id;
    $dim = 140;
    list($width, $height, $type, $attr) = getimagesize($path);


    // Creo la versione 150*n dell'immagine (thumbnail)
    $numero = ($dim/$width);
    $thumb = imagecreatetruecolor($width*$numero, $height*$numero);
    $source = imagecreatefromjpeg($abpathoriginali . "/" . $_FILES['foto'.$i]['name']);

    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $width*$numero, $height*$numero, $width, $height);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb, $minia . "/" .$file, 65); // 65 è la qualità dell'immagine, da 0 a 100

    }
    }

    ************************************************** *****************

    QUESTI SONO GLI ERRORI :

    immagine 1 caricata con successo;

    Warning: imagecreatefromjpeg(/foto1.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/97/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    immagine 2 caricata con successo;

    Warning: imagecreatefromjpeg(/2.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/97/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    immagine 3 caricata con successo;

    Warning: imagecreatefromjpeg(/3.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/97/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    ************************************************** ************

    NON CI STO CAPENDO MOLTO, nel senso che mi imbatto sempre negli errori che spiegavo prima. Grazie ancora

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    scusa, hai ragione.. ho dimenticato di sostiruire in questa riga
    Codice PHP:
    $source imagecreatefromjpeg($abpathoriginali "/" $_FILES['foto'.$i]['name']); 
    $abpathoriginali . "/" . $_FILES['foto'.$i]['name']
    qua ci va il tuo percorso
    Codice PHP:
    $source imagecreatefromjpeg($path); 
    però scusa, te crei tutte le cartelle con $last_id nella root del sito?
    ti conviene crearti una cartella tipo FOTO_GRANDI, dove fai creare dentro le cartelle con gli id? sarebbe mooolto meglio, sennò tra 2-3 anni ti ritrovi tipo 1000 cartelle nella root.. :master: cosa quasi improponibile..

    fammi sapere se ti funziona..

  9. #9
    Ciao grazie ancora per il prezioso aiuto.
    Comunque hai perfettamente ragione, l'ideale sarebbe salvare tutto nella cartella miniature.

    Questo è il mio codice :
    ************************************************** ******************if (mysql_query($query, $connessione))
    {
    $last_id = mysql_insert_id();
    }
    for($i=0;$i<3;$i++)
    {
    if(isset($_FILES['foto'.$i]))
    {
    //creo la cartella che ha per nome il titolo dell'annuncio
    @mkdir("miniature/" . $last_id);
    $num=$i+1;
    $file=$_FILES['foto'.$i];
    $nome= $file['name'];
    $path="$last_id".$nome;
    $vett=explode("/",$file['type']);
    $tipo=$vett[0];
    if($tipo!="image"){}//non mi carico file che non sono immagini [img]images/smilies/smile.gif[/img]
    else
    {
    @move_uploaded_file($file['tmp_name'],$path) or die("errore upload, controllare percorso");
    print"immagine $num caricata con successo;
    ";
    }//fine caricamento
    $minia = $_SERVER['DOCUMENT_ROOT'] . "miniature/" . $last_id;
    $dim = 140;
    list($width, $height, $type, $attr) = getimagesize($path);


    // Creo la versione 150*n dell'immagine (thumbnail)
    $numero = ($dim/$width);
    $thumb = imagecreatetruecolor($width*$numero, $height*$numero);
    $source = imagecreatefromjpeg($abpathoriginali . "/" . $_FILES['foto'.$i]['name']);

    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $width*$numero, $height*$numero, $width, $height);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb, $minia . "/" .$file, 65); // 65 è la qualità dell'immagine, da 0 a 100

    }
    }
    ************************************************** ******************

    Se ci fai caso nei post precedenti avevo già cambiato ed inserito 'foto.$i'
    $abpathoriginali devo lasciarla invariata? Non viene dichiarata da nessuna parte.
    Inoltre adesso la cartella (ID) creata con mkdir viene inserita nella cartella miniature (Come è giusto che sia! GRAZIE DEL CONSIGLIO) mentre le immagini vengono salvate fuori nella cartella admin dove è inserito il file di inserimento.
    Il ridimensionamento non funziona ancora.

    Questi sono gli errori :

    ************************************************** *****************
    Warning: imagecreatefromjpeg(/1.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/98/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    immagine 2 caricata con successo;

    Warning: imagecreatefromjpeg(/2.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/98/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    immagine 3 caricata con successo;

    Warning: imagecreatefromjpeg(/3.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 62

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 64

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '/web/htdocs/www.valmauto.it/home/miniature/98/Array' for writing: No such file or directory in /web/htdocs/www.valmauto.it/home/autousate/admin/inserisciautoveicolo.php on line 67
    ************************************************** ******************

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    Originariamente inviato da telegio
    scusa, hai ragione.. ho dimenticato di sostiruire in questa riga
    Codice PHP:
    $source imagecreatefromjpeg($abpathoriginali "/" $_FILES['foto'.$i]['name']); 
    $abpathoriginali . "/" . $_FILES['foto'.$i]['name']
    qua ci va il tuo percorso
    Codice PHP:
    $source imagecreatefromjpeg($path); 
    però scusa, te crei tutte le cartelle con $last_id nella root del sito?
    ti conviene crearti una cartella tipo FOTO_GRANDI, dove fai creare dentro le cartelle con gli id? sarebbe mooolto meglio, sennò tra 2-3 anni ti ritrovi tipo 1000 cartelle nella root.. :master: cosa quasi improponibile..

    fammi sapere se ti funziona..
    mi autoquoto.. forse non sono stato chiaro..
    devi mettere questa al posto della riga 62
    Codice PHP:
    $source imagecreatefromjpeg($path); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.