Ok... prossimo passo:
L'immagine viene uppata, ed il percorso viene salvato correttamente nel database (grazie a ZACCA94 per le dritte di quest'ultima parte).
Ora devo effettuare un ridimensionamento dell'immagine sul server, così da avere la thumbnail salvata nella cartella /images/ con il nome di thumb_XXXXX (dove XXXX è il nome della thumbnail, preso pari pari da quello del file della foto).
Ho provato questo script, che però mi dà errore (lo riposto per intero, per motivi di completezza del codice).
Grazie fin d'ora a chi avrà il buon cuore di aiutarmi!!
Codice PHP:
<?php
/**
* @author Davide
* @copyright 2009
*/
// Se il campo file da inviare è vuoto, restituisce un errore.
if ($foto == "none")
// Visualizza la finestra d'errore del file vuoto.
echo "<BODY onLoad=\"javascript:alert('Il campo \"FOTO\" è vuoto. Compilarlo.')\">";
else
//
if ($foto > 1024000)
// Visualizza la finestra d'errore del file vuoto.
echo "<BODY onLoad=\"javascript:alert('Il file è più grande di 1 MB. Caricarne uno più piccolo.')\">";
else
// Definisce la directory nella quale viene inviato il file
define("UPLOAD_DIR", "./images/");
// Se la variabile $_POST è definita (ISSET) procede con l'invio
if(isset($_POST['action']) and $_POST['action'] == 'upload')
{
if(isset($_FILES['foto']))
{
$file = $_FILES['foto'];
if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
{
move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
}
}
}
// Crea la thumbnail
// Legge gli attributi del file (larghezza, altezza, tipo, attributi)
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name'].'$file');
// Crea la thumbnail (120*90 pixels)
$thumb = imagecreatetruecolor(120, 90);
$source = imagecreatefromjpeg($_FILES['image']['tmp_name'].'$file');
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height)
// Salvo l'immagine ridimensionata
imagejpeg($thumb, $_FILES['image']['tmp_name']."/images/thumb_".'$file', 75);
@include 'config.inc.php';
// Si collega al database
$conn = mysql_connect($hostname, $username, $password)
or die("Connessione non riuscita:
" . mysql_error());
echo ("Connesso con successo...
");
// Seleziona il database
mysql_select_db($database, $conn);
// Passa le variabili alla query
$url=UPLOAD_DIR.$file['name'];
$marca=$_POST['marca'];
$modello=$_POST['modello'];
$anno=$_POST['anno'];
$porte=$_POST['porte'];
$cilindrata=$_POST['cilindrata'];
$alimentazione=$_POST['alimentazione'];
$descrizione=$_POST['descrizione'];
// Inserisce nella tabella i dati passatigli dalla variabile
$query2 = "INSERT INTO `Sql254827_3`.`auto` (url, marca, modello, anno, cilindrata, porte, alimentazione, descrizione) VALUES ('$url','$marca','$modello','$anno','$cilindrata','$porte','$alimentazione','$descrizione')";
// Esegue la query sul database ed inserisce i dati contenuti in query2
$ri = mysql_query( $query2 , $conn ) or die(mysql_error());
Però mi dà errore sulla linea 50 (che è questa):
Codice PHP:
imagejpeg($thumb, $_FILES['image']['tmp_name']."/images/thumb_".'$file', 75);
Parse error: syntax error, unexpected T_STRING in engine.php on line 50
E non ho capito perchè...