[SOLVED] salvare il TCPDF output in mysql e rivisualizzarlo

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Come da oggetto sto tentando di memorizzare un pdf realizzato dinamicamente con la libreria php TCPDF in un database MySQL.

Il campo del database è BLOB.. e gli invio l'output ottenuto in formato stringa con la libreria TCPDF:
PHP:
$pdf->Output('', 'S');

Quando visualizzo il campo da phpmyadmin trovo il file nella colonna BLOB, e se ci clicco sopra mi chiede di scaricarlo (è in formato .bin). Scaricato e rinominato in .pdf → compare il mio PDF leggibile!

Il problema nasce quando tento di visualizzarlo dal browser (dalla mia web application), interrogando il database (uso PDO).

E' una chiamata AJAX ("se clicchi il pulsante 'btn_pdf' visualizza il pdf"):

Codice:
$.ajax({
        url: 'select_pdf_dal_db.php',
        type: 'post',
        data: {myjson: myjson},
        dataType: 'html',
        success: function(html) {
            // html → restituisce col comando echo la stringa memorizzata nel db
            window.open( "data:application/pdf," + escape( html ) , '', 'height=650,width=840');
        }
    });

Mi apre la finestra.. nella barra riporta tutto il contenuto del file:
"data:application/pdf,%25PDF-1.7%0A%25%uFFFD%uFFFD%uFFFD%uFFFD%0A7 0 obj%0A%...ecc..ecc.."
(mi pare in formato binario) e la pagina è vuota!

Dove sbaglio?

[EDIT: passando con il mouse sulla finestra (bianca, vuota) che visualizza il pdf (richiamato da MySQL) mi sono accorto che il puntatore riconosce l'area del logo della mia azienda (anche se è tutto bianco).. e se ci clicco si sopra apre il link → ergo il pdf viene visualizzato tutto bianco, ma qualcosa gli arriva!!! A questo punto ipotizzo sia un problema di visualizzazione.
Sono accette tutte le possibili soluzioni: in sostanza, a me serve memorizzare nel DB il pdf realizzato dinamicamente, e poterlo richiamare per visualizzarlo quando occorre..]
 
Ultima modifica:

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Dopo aver sboccato sangue andando a tentativi.. ho capito che dovevo:

1) da PHP dovevo codificare la stringa ($content) in base64:
PHP:
$content = $pdf->Output('', 'S');
echo ( base64_encode( $content ) );

2) da JS dovevo decodificare il base64:
Codice:
window.open( 'data:application/pdf;base64,'+ html, '', 'height=650,width=840');
 

marino51

Utente Attivo
28 Feb 2013
2.988
173
63
Lombardia
contento per la soluzione del problema,
meno contento per la scelta di memorizzare i pdf nel db
il file system è il miglior database per i file !!
dopo un po' di pdf memorizzati, il db assumerà dimensioni impossibili per un serio backup
meglio usare come detto il file system e robocopy per i backup dei pdf
se fosse necessario, i file pdf possono essere conservati criptati
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Ottimo consiglio Marino,

ho controllato le dimensioni del pdf.. e sono circa 53kb per file creato.. Quindi considerandone 10.000/anno parliamo di circa 1 Gb all'anno.. Ho pensato infatti alla soluzione file-system (+backup).

Mi adopero per capire come salvare i file sul filesystem e per poterli richiamare successivamente..
Poi do un'occhiata anche a robocopy..

Nel frattempo mi puoi dare indicazione su come criptarli? Cioè.. se io li esporto in base64.. potrei criptare quella stringa e salvarla sul file-system e poi richiamarla (decriptandola)? Se fosse questa la procedura, cosa mi occorre?

Oppure esistono plugin che fanno tutto. Ti ricordo che l'applicazione girerà su Linux e (forse) su Win.

Grazie! :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] [SOLVED] While query result PHP 11
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
E Salvare immagini PHP 0
L salvare codice html in mysql PHP 3
L salvare somma con sottrazione PHP 1
M Salvare coordinate Maps nel DB PHP 2
D SALVARE "MASCHERA" + "ALLEGATO PDF" IN UN UNICO PDF MS Access 0
A Twitter aggiungere tweet a campagna esistente o salvare pubblico Social Media Marketing 0
D Salvare in diversi campi mysql con diversi ID PHP 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
M Salvare JSONObject in Shared Preference Sviluppo app per Android 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M [PHP] FPDF Salvare su disco C locale Windows PHP 3
C Photoshop CS 6 salvare una modifica Photoshop 0
L [PHP] Salvare csv da form dati PHP 5
A Salvare immagine ridimensionata in MySql con GD PHP 12
G php salvare file in campo blob mysql: massimo 4MB PHP 1
M Salvare pagine web come segnalibro con istruzioni javascript Javascript 0
L Salvare posizione maps Sviluppo app per Android 0
G [PHP] SALVARE RECORD ESTRATTI DA DATABASE PHP 6
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
M Salvare i dati nel db e aprire altra pagina php PHP 7
M Form ASP su MsSQL salvare 2 campi in 1 Classic ASP 4
V [PHP] Salvare campo radio in db e leggerlo PHP 15
S [PHP] Salvare dati tabella in formato exel PHP 0
Benix89 Come salvare radio button selezionato Magento 1
Benix89 Salvare radio button selezionato PHP 2
P Come salvare il proprio diario di fb Discussioni Varie 0
P Salvare i dati restituiti dopo autenticazione OAuth2 Javascript 0
M Salvare in tabella link file importato PHP 1
F Cliccare e salvare src immagine HTML e CSS 2
M Cartella predefinita dove salvare i backup PHP 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 7
C Salvare il click su di un Button Sviluppo app per Android 9
Emix Salvare documenti in DB PHP 3
D salvare righe dinamicamente PHP 3
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C Salvare dati form in un file di testo PHP 2
M Salvare select con cookie PHP 1
IImanuII Salvare/recuperare html da un db PHP 5
S Salvare dei dati in una determinata tabella in base al select che l'utente seleziona PHP 8
M salvare una activity e richiamarla Sviluppo app per Android 6
Shyson Salvare impostazioni del Database Database 0
Z Salvare Form su un file .JPG Visual Basic 0
B Salvare dati in locale e sincronizzarli... Javascript 26
P Salvare vari tipi di file in cartelle. PHP 6
V salvare in txt PHP 8

Discussioni simili