[Risolto] [PHP] Esportare contenuto campo blob

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
xinyiquanman
Prode Principiante
Messaggi: 100
Iscrizione: martedì 28 aprile 2009, 14:31
Contatti:

[Risolto] [PHP] Esportare contenuto campo blob

Messaggio da xinyiquanman »

Ciao ragazzi, ho bisogno di esportare il contenuto di un campo blob (il database firebird, uso le PDO per la connessione) su un file nel filesystem ($pathOut). Ho guardato un po' su internet e sono arrivato qui. Ma non funziona perchè mi crea tutti file vuoti. Posto la funzione incriminata, la connessione al db funziona, è solo che non riesco ad esportare il blob.

Grazie dell'aiuto

/*Estrae il contenuto del blob e lo mette in una cartella e in un file*/
function extractBlobIntoDir($CodDitta, $Num, $pathOut)
{
$ret="";
$db_corp = new PDO ($this->stringa_connessione_locale,$this->usr_connessione_locale, $this->pwd_connessione_locale);

$query_corp1= "select miocampo from miatabella WHERE (not (miocampo is null)) AND MYDITTA='" . $CodDitta . "' AND NUM=" . $Num;

$result_corp1 = $db_corp->prepare($query_corp1);
$result_corp1->execute();
$result_corp1->bindColumn(1, $corp1_FOTO, PDO::PARAM_LOB);


while($result_corp1->fetch()){
if($corp1_FOTO){

$Mycontent = stream_get_contents( $corp1_FOTO );
file_put_contents( $pathOut, $Mycontent );

}
}
return $ret;
}
Ultima modifica di xinyiquanman il martedì 25 agosto 2015, 23:38, modificato 1 volta in totale.
Amo la programmazione semplice = amo Lazarus.
http://www.lazaruspascal.it (Community Italiana di Lazarus e Free Pascal)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] Esportare contenuto campo blob

Messaggio da Zoff »

Non è che in $corp1_FOTO c'è già il contenuto del file?

Prova con:

Codice: Seleziona tutto

/*Estrae il contenuto del blob e lo mette in una cartella e in un file*/
function extractBlobIntoDir($CodDitta, $Num, $pathOut)
{
    $ret="";
    $db_corp = new PDO ($this->stringa_connessione_locale,$this->usr_connessione_locale, $this->pwd_connessione_locale);

    $query_corp1= "select miocampo from miatabella WHERE (not (miocampo is null)) AND MYDITTA='" . $CodDitta . "' AND NUM=" . $Num;

    $result_corp1 = $db_corp->prepare($query_corp1);
    $result_corp1->execute();
    $result_corp1->bindColumn(1, $corp1_FOTO, PDO::PARAM_LOB);


    while($result_corp1->fetch()){
        if($corp1_FOTO){
            file_put_contents( $pathOut, $corp1_FOTO );
        }
    }
    return $ret;
}
NB: Usare PDO in quel modo è completamente insicuro. I parametri vanno sempre controllati e passati attraverso i prepared statement.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
xinyiquanman
Prode Principiante
Messaggi: 100
Iscrizione: martedì 28 aprile 2009, 14:31
Contatti:

Re: [PHP] Esportare contenuto campo blob

Messaggio da xinyiquanman »

Grazie mille ha funzionato egregiamente.

:D
Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4795865#p4795865][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non è che in $corp1_FOTO c'è già il contenuto del file?

Prova con:

Codice: Seleziona tutto

/*Estrae il contenuto del blob e lo mette in una cartella e in un file*/
function extractBlobIntoDir($CodDitta, $Num, $pathOut)
{
    $ret="";
    $db_corp = new PDO ($this->stringa_connessione_locale,$this->usr_connessione_locale, $this->pwd_connessione_locale);

    $query_corp1= "select miocampo from miatabella WHERE (not (miocampo is null)) AND MYDITTA='" . $CodDitta . "' AND NUM=" . $Num;

    $result_corp1 = $db_corp->prepare($query_corp1);
    $result_corp1->execute();
    $result_corp1->bindColumn(1, $corp1_FOTO, PDO::PARAM_LOB);


    while($result_corp1->fetch()){
        if($corp1_FOTO){
            file_put_contents( $pathOut, $corp1_FOTO );
        }
    }
    return $ret;
}
NB: Usare PDO in quel modo è completamente insicuro. I parametri vanno sempre controllati e passati attraverso i prepared statement.
Amo la programmazione semplice = amo Lazarus.
http://www.lazaruspascal.it (Community Italiana di Lazarus e Free Pascal)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti