Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    inserire immagine in campo BLOB è possibile?

    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]";
    ?> 

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    parti da questo
    http://www.php-mysql-tutorial.com/wi...-database.aspx
    e fai delle ricerche in google

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    scusate ma per caso che per far funzionare questo codice si devono includere delle librerie?
    Per caso devo includere queste ?
    include ('dbinfo.inc');
    include ('errors.inc');

    Se si io non le trovo nella directory di php, per caso devo scaricarle ed installarle?

  4. #4
    quegli include includono librerie create dall'autore del tutorial...

    sono funzioni che lui utilizza per effettuare le query al db e gestire gli errori, direi che sono molto banali, puoi farne a meno utilizzando le funzioni standard di php...
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  5. #5
    Codice PHP:
    //funzione per il caricamento delle immagini nel database
    function upload()
    {
      
    $result false;
      
    $result = @is_uploaded_file($_FILES['limmagine']['tmp_name']);
      if (!
    $result){
            
            echo 
    "Impossibile eseguire l'upload.";
            return 
    false;
      }
      
      else{
      
        
    $dimensione $_FILES['immagine']['size'];
        
    $tipo $_FILES['immagine']['type'];
        
    $nome $_FILES['immagine']['name'];
        
        
    //restituisce il file in una stringa 
        
    $immagine = @file_get_contents($_FILES['immagine']['tmp_name']);
        
        
    //La funzione restituisce una stringa con il carattere di backslash \ anteposto ai caratteri che richiedono il quoting nelle query dei database
        
    $immagine addslashes ($immagine);
        
        
    $query "INSERT INTO immagini (nome, dimensione, tipo, immagine) VALUES ('$nome','$dimensione','$tipo','$immagine')";
        
    mysql_query($query) or die (mysql_error());
      }

    personalmente però ti consiglio di non appesantirlo con le immagini il database...cmq per usare questa funzione che ti ho appena scritto basta includerla nel file php interessato,richiamare i dati tramite post e poi scrivere un semplice:

    upload();

    ovviamente dove ritieni opportuno..adattalo alle tue esigenze...ciauzz
    V.I.S.T.A. --> Virus Inside, Switch To Apple

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.