[PHP] Problema per ridurre delle immagini e spostare i files in cartelle

Discussione in 'PHP' iniziata da Delemir78, 12 Ottobre 2017.

  1. Delemir78

    Delemir78 Nuovo Utente

    Registrato:
    12 Ottobre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti,

    ho un problema con un codice che dovrebbe fare le seguenti cose:

    • leggere i nomi dei files nella cartella "upload"
    • creare una copia ridimensionata del files e inserirla nella cartella "anteprime"
    • copiare il file originale dalla cartella "upload" alla cartella "originali"
    • cancellare il file originale dalla cartella "upload"
    Lo script non funziona, legge il nome del files, crea un anteprima nera e non mi sposta il file originale.

    Qualcuno può aiutarmi?


    Grazie mille

    Ecco il codice:


    <?php

    $jpg = glob('upload/*.jpg');

    foreach ($jpg as $filename) {

    $nomefile = substr($filename, 7);

    echo $nomefile;


    // CREO ANTEPRIMA A BASSA RISOLUZIONE -------------------------------------

    // Ottengo le informazioni sull'immagine originale

    list ($width, $height, $type, $attr) = getimagesize ($_SERVER['DOCUMENT_ROOT'] . '/upload/$nomefile');

    // Creo la versione 400*223 dell'immagine

    $thumb = imagecreatetruecolor (400, 223);

    $source = imagecreatefromjpeg ($_SERVER['DOCUMENT_ROOT'] . '/upload/$nomefile');

    imagecopyresized ($thumb, $source, 0, 0, 0, 0, 400, 223, $width, $height);

    // Salvo l'immagine ridimensionata

    imagejpeg ($thumb, $_SERVER['DOCUMENT_ROOT'] . "/anteprime/$nomefile", 75);


    // SPOSTO L'ORIGINALE NELLA CARTALLA APPOSITA -------------------------------------

    sleep (1);

    $originale = '/upload/$nomefile';

    $copia = '/originali/$nomefile';

    move_uploaded_file ($originale,$copia);


    // CANCELLO IL FILE NELLA CARTELLA UPLOAD -------------------------------------

    sleep (1);

    unlink ('/upload/$nomefile');

    }

    ?>
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.877
    Mi Piace Ricevuti:
    68
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    i percorsi sono diversi, quale è quello giusto o quali ..... ?
    PHP:
    $jpg glob('upload/*.jpg');

     list (
    $width$height$type$attr) = getimagesize ($_SERVER['DOCUMENT_ROOT'] . '/upload/$nomefile');

     
    $source imagecreatefromjpeg ($_SERVER['DOCUMENT_ROOT'] . '/upload/$nomefile');

     
    imagejpeg ($thumb$_SERVER['DOCUMENT_ROOT'] . "/anteprime/$nomefile"75);

     
    $originale '/upload/$nomefile';

     
    $copia '/originali/$nomefile';

     
    unlink ('/upload/$nomefile');
     
  3. Delemir78

    Delemir78 Nuovo Utente

    Registrato:
    12 Ottobre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Avevo previsto 3 cartelle:

    - UPLOAD, dove arrivano i files
    - ANTEPRIME, dove vengono copiate le immagini a bassa risoluzione una volta create
    - ORIGINALI, dove vengono spostati i files originali dalla cartella upload
     
  4. Delemir78

    Delemir78 Nuovo Utente

    Registrato:
    12 Ottobre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Però l'anteprima nella cartella corretta me la crea ma è tutta nera!

    Il comando copy invece non mi funziona, l'immagine originale resta nella cartella UPLOAD invece che finire in ORIGINALI
     
  5. jonnino2004

    jonnino2004 Utente Attivo

    Registrato:
    23 Maggio 2007
    Messaggi:
    79
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Sesso:
    Maschio
    Località:
    como
    Home Page:
    ciao
    ti giro il codice corretto in alcuni punti (testato da me funziona)

    errori: se usi apici singoli con '$nomeFile' non viene risolto
    ti ho cambiato move_uploaded_file con rename

    quando effettui il resize sull'immagine considera che potresti alterare l'aspect-ratio



    PHP:
    <?php

    $jpg 
    glob('upload/*.jpg');

    foreach (
    $jpg as $filename) {

    $nomefile substr($filename7);

    echo 
    $nomefile;


    // CREO ANTEPRIMA A BASSA RISOLUZIONE -------------------------------------

    // Ottengo le informazioni sull'immagine originale

    list ($width$height$type$attr) = getimagesize ($_SERVER['DOCUMENT_ROOT'] . '/upload/'.$nomefile);

    // Creo la versione 400*223 dell'immagine

    $thumb imagecreatetruecolor (400223);

    $source imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'] . '/upload/'.$nomefile);

    imagecopyresized ($thumb$source0000400223$width$height);

    // Salvo l'immagine ridimensionata

    imagejpeg ($thumb$_SERVER['DOCUMENT_ROOT'] . "/anteprime/$nomefile"75);


    // SPOSTO L'ORIGINALE NELLA CARTALLA APPOSITA -------------------------------------

    sleep (1);

    $originale $_SERVER['DOCUMENT_ROOT'].'/upload/'.$nomefile;
    $copia =$_SERVER['DOCUMENT_ROOT']. '/originali/'.$nomefile;

    rename($originale,$copia);


    // CANCELLO IL FILE NELLA CARTELLA UPLOAD -------------------------------------

    sleep (1);

    unlink ('/upload/$nomefile');

    }

    ?>
     
  6. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.877
    Mi Piace Ricevuti:
    68
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    PHP:
    $jpg glob('upload/*.jpg');

    unlink ('/upload/$nomefile');
    continuo ad avere dubbi visto che i percorsi sono diversi ...
     
Sto caricando...

Condividi questa Pagina