Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    63

    Inserimento Foto In Un Db

    Sto utilizzando del codice che mi permette d'inserire file binari all'interno di un db.
    Ho un problema : se selezione dei file di testo l'inserimento avviene correttatmente, invece se provo ad inserire delle foto l'inserimento non avviene.
    Dove sbaglio?
    Di seguito riporto il codice che utilizzo. Grazie in anticipo per un eventuale aiuto.

    <?php

    if(!isset($_POST)) $_POST = $HTTP_POST_VARS;


    if($_POST["invia"] and $_FILES["file_binario"]["tmp_name"]!=null ) {

    // CONNESSIONE AL MYSQL
    $db = mysql_connect("localhost", "root", "");

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    else {echo 'Connesso con successo';}

    // SELEZIONE DATABASE
    if(!mysql_select_db("file_binari", $db))
    {die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");}

    else {echo 'Connesso con successo';}


    // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE
    $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));

    // ESEGUIAMO LA QUERY DI INSERIMENTO
    $result = @mysql_query("INSERT INTO file_binari (Descrizione, DatiBinari, Nome, Size, Type)
    VALUES ('" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "',
    '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')")
    or die("Query di inserimento fallita !");

    // ESITO POSITIVO
    echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";

    // CHIUDIAMO LA CONNESSIONE A MYSQL
    mysql_close();

    }
    else
    {
    echo "Il file non è stato correttamente inserito nel form.";

    }

    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    posta l'errore mysql restituito o in quale riga si blocca eventualmente lo script...

  3. #3
    Magari posta anche la struttura della tabella file_binari
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    63
    Ho inserito nello script la linea di codice per farmi restituire l'errore (or die("Query di inserimento fallita !Errore nell'inserimento: ". mysql_error()) e mi dice:
    MySQL server has gone away.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    63
    Ecco la struttura della tabella

    mysql_query("
    CREATE TABLE file_binari (
    Id int(4) NOT NULL auto_increment,
    Descrizione varchar(255) NOT NULL default '',
    DatiBinari mediumblob NOT NULL,
    Nome varchar(50) NOT NULL default '',
    Size int(10) NOT NULL default '0',
    Type varchar(50) NOT NULL default '',
    PRIMARY KEY (Id)
    )
    ");

  6. #6
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    63
    ho provato a far ripartire MySQL, ma continua a non inserirmi le foto, mentre mi inseririsce i file di testo.
    Non vorrei che l'errore fosse in questa riga di codice
    $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    potrebbe essere un problema nella "lettura" del file o nella sua dimensione... puoi provare intanto a sostituire la dimensione con un valore fisso piccolo (p.es. 100 anzichè $_FILES["file_binario"]["size"]) e vedere se va:

    se sì il problema è la dimensione del file
    se no c'è qualcosa che non va nel leggere il file temporaneo


    vedi un po'...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    63
    impostando 100 al posto $_FILES["file_binario"]["size"] inserisce la foto.
    Ma non posso rimanere 100, come devo fare?
    Inoltre quello che mi chiedo è se mi copia solo 100 byte nel DB visto che ho inserito 100?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    alllora è un problema di dimensione... sì: con 100 mette solo i primi 100bytes. Forse le dimensioni delle immagini (quanto pesano?) sono tali da far tardare tanto lo script così che il server MySQL "va giù"... devi usare un'altra strada mi sa...

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.