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

Delemir78

Nuovo Utente
12 Ott 2017
3
0
1
41
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');

}

?>
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
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');
 

Delemir78

Nuovo Utente
12 Ott 2017
3
0
1
41
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
 

Delemir78

Nuovo Utente
12 Ott 2017
3
0
1
41
i percorsi sono diversi, quale è quello giusto o quali ..... ?
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
 

jonnino2004

Utente Attivo
23 Mag 2007
86
3
8
como
www.quizandoceffee.com
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($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 = $_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');

}

?>