Ciao a tutti, ho due domande per chi avrà la pazienza di aiutarmi, potrebbe ridurre ed ottimizzare un po' il codice ed aiutarmi ad imparare qualcosa di nuovo.
Codice PHP:
// Ottengo le informazioni sull'immagine originale
list($width, $height, $type, $attr) = getimagesize($_FILES['userFile']['tmp_name']);
// Creo la versione 120*90 dell'immagine (thumbnail)
$thumb = imagecreatetruecolor(120, 90);
$source = imagecreatefromjpeg($_FILES['userFile']['tmp_name']);
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);
// Salvo l'immagine ridimensionata
imagejpeg($thumb,'../thumbs/01.jpg');
$handle = fopen ('../thumbs/01.jpg', "r") or die ('impossibile aprire il file');
$minion = fread ($handle, filesize('../thumbs/01.jpg')) or die('impossibile leggere il file');
fclose ($handle);
$minion = mysql_real_escape_string($minion);
$query = "UPDATE immagini SET
immagine='" . $image . "',
thumbs='" . $minion . "',
type='{$_FILES['userFile']['type']}'
WHERE id=1";
$result = mysql_query($query);
Prima domanda.
Quando indico il nome del file da salvare vorrei assegnare l'estensione con una variabile. Per precisione la variabile che va a prendere l'estensione del file caricato. In questo modo (quando avrò aggiunto il ridimensionamento per altre estensioni) restituirà ogni volta l'estensione corretta e non dovrò fare più casistiche a seconda se sia jpg, png o gif.
Ho provato ad esempio così ma non mi salva nulla:
Codice PHP:
$percorso = "..thumbs/01.";
$estensione = $_FILES['userFile']['type'];
imagejpeg($thumb, $percorso . $estensione);
Seconda domanda.
Per inserire la mia immagine ridimensionata nel database (campo blob) ho dovuto riprenderla dalla cartella del server e quindi rimetterla in variabile come faccio quando la prendo da un form.
La variabile $thumb dovrebbe contenere già l'immagine ma se la inserisco nel db ho un file di pochi byte che non mi restituisce a schermo nulla, come mai?
Grazie mille