• User Newbie

    php mysql e immagini

    salve a tutti ho un problema con uno script per l'upload su mysql di file immagini. ci sono due file , il primo file richiama l'immagine che tramite il metodo post viene inviata al secondo script che dovrebbe , oltre a creare una anteprima inserirla anche nel database , ma a quanto pare crea solo l'anteprima senza inserirla nel database.

    1° file

    <html>
    <head>
    <title>Upload</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <form name="formUpload" enctype="multipart/form-data" method="post" action="upload02.php">
    <p>
    <input name="fileUP" type="file" id="fileUP">
    </p>
    <p>
    <input type="submit" name="Submit" value="Invia">
    </p>
    </form>
    </body>
    </html>

    2° file

    <?php

    // se riceviamo i dati dal form
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_FILES['fileUP'] > 0 )
    $fileName = $_FILES['fileUP']['name'];
    $tmpName = $_FILES['fileUP']['tmp_name'];
    $fileSize = $_FILES['fileUP'];
    $fileMimeSize = $_FILES['fileUP']['type'];
    // Ricaviamo le informazioni sull'immagine
    list($width,$height,$type,$attr) = getimagesize( $_FILES['fileUP']['tmp_name']);
    // controlliamo che il lato maggiore dell'immagine non superi i 640 pixel
    if(($width > 640 ) || ($height > 640))
    {$msg = "<p>Immagine di dimensione superiori al consentito&lt</p>";}
    // in base al tipo di immagine creiamo un tipo temporanea del tipo corretto
    switch ($type){
    case 1: // gif
    $img_in=imagecreatefromgif($tmpName) or die ("impossibile creare l'immagine");
    if(!isset($extension))
    {$extension = "jpg";}
    break;
    case 2: // jpg
    $img_in=imagecreatefromjpeg($tmpName) or die ("impossibile creare l'immagine");
    if(!isset($extension))
    {$extension = "jpg";}
    break;
    case 3: // png
    $img_in=imagecreatefrompng($tmpName) or die ("impossibile creare l'immagine");
    if(!isset($extension))
    {$extension = "png";}
    break;
    default:
    die("impossibile creare l'immagine");
    }
    // Calcoliamo la percentuale di ridimensionamento in base alle dimensioni finali desederate
    $thumb_max_width = 100;
    $thumb_max_height = 100;
    $percentuale = ($width > $height) ? $thumb_max_width / $width: $thumb_max_height / $height;
    $th_width = $width * $percentuale;
    $th_height = $height * $percentuale;
    $img_new = imagecreatetruecolor($th_width,$th_height);
    imagecopyresampled($img_new,$img_in,0,0,0,0,$th_width,$th_height,$width,$height);
    // a seconda del tipo di immagine inviamo al browser l'header corretto
    switch($extension) {
    case "gif":
    header("content-type:image/gif");
    imagejpeg($img_new);
    exit;
    case "jpg":
    header("content_type:image/jpeg");
    imagejpeg($img_new);
    exit;
    case "png":
    header("content_type:image/png");
    imagepng($img_new);
    exit;
    default:
    die ("impossibile visualizzare l'immagine");
    }

    if($filesize > 64000) {
    die ("dimensione in KB dell'immagine superiore al consentito.");
    }
    // prepariamo i dati per l'inserimento in MYSQL
    ob_start();
    // creiamo il thumbnail in formato in jpeg
    imagejpeg($img_new);
    $thumbTemp = ob_get_contents();
    $thumbnail = addslashes($thumbTemp);
    ob_end_clean();
    $immagine = addslashes(fread(fopen($tmpName, "r"), $fileSize));
    // apriamo la connessione al database
    $db_host ="localhost";
    $db_user = "root";
    $db_name = "ibravi";
    $db_password = "ciao";
    $connection = mysql_connect($db_host,$db_user,$db_password) or die ("Impossibile connettersi al server MySQL.\n");
    mysql_select_db($db_name,$connection) or die ("Impossibile aprire il database.\n");
    // inseriamo i dati nella tabella
    $sql = "INSERT INTO file_upload (bin_data, filename , filesize , filetype, width , height , thumb) VALUES ('$immagine' , '$fileName' , '$fileSize' , '$extension' , $width , $height ,'$thumbnail')";

    $sql_result = mysql_query($sql,$connection) or die (mysql_error());
    $id = mysql_insert_id();
    // chiudiamo la commessione
    mysql_close($connection);
    ?>

    che ne pensate??

    qualcuno puo darmi una mano??