salve a tutti devo inserire un'immagine nel campo blob di un db mysql, e non mi interessa mettere solo url e poi richiamarla, ma inserire l'immagine vera e propria.
Ho provato a scrivere questo script ma non funziona il caricamento.
Codice PHP:
$user = isset($_POST['user_name']) ? $_POST['user_name'] : '';
$pass = isset($_POST['password']) ? $_POST['password'] : '';
$pass_1 = isset($_POST['password_1']) ? $_POST['password_1'] : '';
$mail = isset($_POST['mail']) ? $_POST['mail'] : '';
if ($user == '' || ($pass != $pass_1)) // usa empty
{
echo "User Name o Password sbagliate";
exit;
}
// L'upload del file è riuscito ??
if ($_FILES['avatar']['error'] == UPLOAD_ERROR_OK)
{
$ext = strtolower(pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION)); // cattura l'estensione del file caricato
switch($ext)
{
case 'jpg' : case 'jpeg' : $typefile = 'image/jpeg'; break;
case 'gif' : $typefile = 'image/gif'; break;
case 'png' : $typefile = 'image/png'; break;
case 'bmp' : $typefile = 'image/bmp'; break;
default : throw new InvalidFileTypeException($ext);
}
$file = fopen($_FILES['avatar']['tmp_name'], "r");
if ( $file === NULL )
{
throw new FileAccessException();
exit;
}
$filesize = filesize($_FILES['avatar']['tmp_name']);
$filedata = addslashes(fread($file, $filesize));
fclose($file);
if (intval($_FILES['avatar']['size']) > 50000000)
{
// throw new FileTooBigException();
echo "Il file è troppo grande";
exit;
}
}else
{
throw new FileUploadException($_FILES['avatar']['error']);
}
// Inizia l'upload nel Database
$conn = new mysqli("localhost", "root", "jpt", "vit");
if(mysqli_connect_errno() != 0)
{
$message = mysqli_connect_errno();
echo "
Errore di connessione al database : errore numero $message</p>";
exit;
}
$conn->query("SET NAMES 'utf8'");
$password = md5($pass);
$insert = <<<TESTO
INSERT INTO user (nick_name, password, e_mail, avatar)
VALUES ('$user', '$password', '$mail', '$filedata')
TESTO;
$result = $conn->query($insert);
if($result === FALSE)
{
echo "Errore nella query di upload";
$conn->close();
exit;
}
echo "
Query riuscita";
echo "[url='index.php']Torna alla home page[/url]";
?>