Discussione:
Estrazione campi blob da MySql
(troppo vecchio per rispondere)
d***@gmail.com
2008-08-01 14:53:47 UTC
Permalink
Ho un database dove uno dei campi e' un blob, con dentro dei pdf.
Perche' se estraggo il pdf facendo una query in uno script php ottengo
l'immagine pdf perfetta, e invece se faccio la stessa sql da shell
ottengo un file che non riesco ad aprire in quanto Acrobat Reader dice
che il file e' danneggiato?
Enrico Bassetti
2008-08-01 14:59:00 UTC
Permalink
[...] e invece se faccio la stessa sql da shell
ottengo un file che non riesco ad aprire in quanto Acrobat Reader dice
che il file e' danneggiato?
Puoi (de)scrivere i passaggi che fai "da shell" per tirare fuori il pdf?

Enrico
d***@gmail.com
2008-08-01 15:07:48 UTC
Permalink
Post by Enrico Bassetti
Puoi (de)scrivere i passaggi che fai "da shell" per tirare fuori il pdf?
echo "select immagine from stampepdf where anno=08 and mese=07 and
giorno=31 and numero=2317" |mysql -N -B -r -p stampedb >/root/
stampa.pdf
Il -r serve per ovviare il problema dei caratteri di controllo come
suggeriva Aioe, ma nulla da fare!
d***@gmail.com
2008-08-01 15:17:48 UTC
Permalink
Aggiungo anche che le immagini sono di poche decine di kb, quindi non
ci sono problemi di max-length etc...
d***@gmail.com
2008-08-01 15:47:51 UTC
Permalink
Post by d***@gmail.com
Aggiungo anche che le immagini sono di poche decine di kb, quindi non
ci sono problemi di max-length etc...
Ho scoperto una cosa.....
Senza il -r se faccio il vi del pdf, vedo che c'e' tutto (a occhio)
pero' viene messo tutto su una sola riga!
Mentre con il -r srive correttamente l'inizio ma poi il file risulta
troncato, praticamente mi scrive solo pochi byte, il file memoriggazo
invece e' circa 50K
Da cosa diavolo puo' dipendere non lo so!
Enrico Bassetti
2008-08-01 16:04:24 UTC
Permalink
Post by d***@gmail.com
Ho scoperto una cosa.....
Senza il -r se faccio il vi del pdf, vedo che c'e' tutto (a occhio)
pero' viene messo tutto su una sola riga!
Mentre con il -r srive correttamente l'inizio ma poi il file risulta
troncato, praticamente mi scrive solo pochi byte, il file memoriggazo
invece e' circa 50K
Da cosa diavolo puo' dipendere non lo so!
Ma se usi uno script (php o altro linguaggio) per tirare fuori il pdf?

Enrico
d***@gmail.com
2008-08-01 16:07:59 UTC
Permalink
Post by Enrico Bassetti
Ma se usi uno script (php o altro linguaggio) per tirare fuori il pdf?
Infatti... se leggi il mio primo post ho gia' detto che con uno script
php funziona bene.... ma rimane la curiosita'
Enrico Bassetti
2008-08-01 16:14:00 UTC
Permalink
Post by d***@gmail.com
ma rimane la curiosita'
Ah pensavo volessi per forza usare la console :-D

Enrico
d***@gmail.com
2008-08-01 16:25:19 UTC
Permalink
Post by Enrico Bassetti
Ah pensavo volessi per forza usare la console :-D
Evidentemente il metodo mysql_fetch_row del php fa qualche
"aggiustamento" sull'output che evidentemente non avviene da shell.
d***@gmail.com
2008-08-01 16:37:05 UTC
Permalink
Post by d***@gmail.com
Evidentemente il metodo mysql_fetch_row del php fa qualche
"aggiustamento" sull'output che evidentemente non avviene da shell.
Se la cosa stuzzica la curiosita' di qualcuno ho scoperto questo.
Quando tiro fuori il pdf da shell (con il -r), il file risulatante e'
troncato alla prima occorrenza di un particolare carattere di
controllo... il NUL (codice ottale 000) quello per intenderci, che
viene rappresentato sui terminali ansi standard come ^@
Non appena nel file si incontra tale carattere si ferma tutto e il
resto del file viene dimenticato!
Alessandro Pellizzari
2008-08-01 16:56:59 UTC
Permalink
Se la cosa stuzzica la curiosita' di qualcuno ho scoperto questo. Quando
tiro fuori il pdf da shell (con il -r), il file risulatante e' troncato
alla prima occorrenza di un particolare carattere di controllo... il NUL
(codice ottale 000) quello per intenderci, che viene rappresentato sui
carattere si ferma tutto e il resto del file viene dimenticato!
Presumo che questo dipenda dal fatto che in C il NULL viene usato come
marcatore di fine stringa, mentre in PHP viene memorizzata a parte la
lunghezza della stringa, che quindi non si ferma al NULL, ma prosegue fino
alla fine.

Bye.

Aioe
2008-08-01 14:59:33 UTC
Permalink
Post by d***@gmail.com
e invece se faccio la stessa sql da shell
ottengo un file che non riesco ad aprire in quanto Acrobat Reader dice
che il file e' danneggiato?
perchè la shell interpreta certi caratteri come caratteri di controllo?
Loading...