Impossibilità di esportare pdf contenenti immagini

SanFrancesco

New member
Ciao Eugenio,
non riesco ad esportare pdf che hanno un campo di tipo 'image_file'.
Ogni volta che ci provo ottengo il seguente messaggio:
[pre]
TCPDF ERROR: [Image] Unable to get the size of the image: https://sanfrancesco-ai.ddns.net/...
[/pre]
Cosa dovrei modificare per ottenere lo stesso risultato delle demo che hai messo a disposizione?
Ti ringrazio

[pre]
You are using DaDaBIK version 9.1-Monterosso enterprise, installed on 22-09-2018
PHP Version: 7.0.33-0+deb9u1
mysql version: 5.5.5-10.1.37-MariaDB-0+deb9u1
Web server: Apache/2.4.25 (Raspbian)
Client: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
[/pre]
 

eugenio

Administrator
Staff member
Ciao,
al di fuori dei pdf, le stesse immagini le vedi correttamente se apri la pagina di dettaglio di un record?

Hai modificato TCPF, magari installando una versione diversa da quella fornita insieme a DaDaBIK?

Saluti,
 

SanFrancesco

New member
Ciao Eugenio,
no, non ho modificato niente all'interno della libreria TCPDF e le stesse immagini le vedo correttamente quando apro la pagina di dettaglio di un record.

Ho installato questa applicazione su un Raspberry che ho in casa. Ho pensato potesse essere un problema riguardante la mia connessione e cioè che non vanno a buon fine le richieste fatte dalla libreria TCPDF tramite l'utilizzo della funzione 'file_get_contents()' perché interne alla mia rete.
Pensi possa aver senso?

Allora ho installato la stessa applicazione su uno shared hosting che ho su Netsons e qui ottengo un altro tipo di errore:
[pre]
TCPDF ERROR: Unable to write file: /tmp/__tcpdf_fdd1a083f995b3974e57e28b5ebe3100_img_bdf1a5e9d670c8649ekF8iNt
[/pre]
 

eugenio

Administrator
Staff member
Ciao,
sì, se ci sono redirect particolari questo può impattare sul recupero delle immagini, probabilmente TCPDF non riesce ad arrivare al file in questione.

Riguardo al secondo errore è la prima volta che lo vedo, sembra che TCPDF non riesca a scrivere in /tmp, cosa che evidentemente gli serve per produrre il file PDF finale. Succede sempre? Potresti sentire il tuo fornitore di hosting se i permessi, a loro avviso, sono settati correttamente visto che ottieni questo errore.
 

SanFrancesco

New member
Ciao Eugenio,
si, succede sempre.
Ti incollo nel post successivo la risposta che mi ha dato il Technical Operator Support del mio fornitore di hosting.
 

SanFrancesco

New member
Salve,
effettuando un controllo sul server con il timestamps non emergono errori lato webserver:
[pre]
<mio_url>.it 84.220.6.5 - - [19/Feb/2019:17:31:31 +0100] "GET /favicon.ico HTTP/1.1" 200 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:65.0) Gecko/20100101 Firefox/65.0"
<mio_url>.it 84.220.6.5 - - [19/Feb/2019:17:32:16 +0100] "GET /index.php?tablename=ga_allegato_persona&function=search&export_to_pdf=1 HTTP/1.1" 200 126 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:65.0) Gecko/20100101 Firefox/65.0"
<mio_url>.it 84.220.6.5 - - [19/Feb/2019:17:32:17 +0100] "GET /favicon.ico HTTP/1.1" 200 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:65.0) Gecko/20100101 Firefox/65.0"
<mio_url>.it 84.220.6.5 - - [19/Feb/2019:17:51:47 +0100] "GET /login.php?function=logout HTTP/1.1" 302 27944 "http://<mio_url>.it/index.php?function=search&tablename=ga_allegato_persona" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:65.0) Gecko/20100101 Firefox/65.0"
[/pre]
ed i permessi della cartella /tmp/ sono corretti:
[pre]
Size: 430080 Blocks: 856 IO Block: 4096 directory
Device: 700h/1792d Inode: 2 Links: 1467
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
[/pre]
Le suggerisco di verificare se possibile indicare il seguente percorso: /home/<mio_user>/tmp
come directory temporanea nell' applicativo utilizzato e controllare la versione del PHP utilizzata su cPanel >> PHP Selector.

A livello PHP, il seguente error_log viene aggiornato in data odierna: ./public_html/error_log
[pre]
...
[19-Feb-2019 17:31:31 Europe/Rome] PHP Warning: fopen(/home/<mio_user>/public_html//tmp/__tcpdf_5441717e85adf95bff610e5a0da783a8_img_45af3eade09411e04bPa1s5H): failed to open stream: No such file or directory in /home/<mio_user>/public_html/include/tcpdf/include/tcpdf_static.php on line 1855
[19-Feb-2019 17:32:17 Europe/Rome] PHP Warning: fopen(/home/<mio_user>/public_html//tmp/__tcpdf_37666e91b6fea5c6468089adf977fae8_img_80f80169e38c4eed8cy6P3f5): failed to open stream: No such file or directory in /home/<mio_user>/public_html/include/tcpdf/include/tcpdf_static.php on line 1855
...
[/pre]
Resto a disposizione per ulteriori chiarimenti.
Cordiali Saluti
 

eugenio

Administrator
Staff member
E' davvero strano, non riesco a spiegarmelo, che il file creato sia troppo grande?

Puoi provare come consigliano loro di cambiare la directory temporanea; devi aprire:

/include/tcpdf/config/tcpdf_config.php

e decommentare

define ('K_PATH_CACHE', '/tmp/');

settando la dir che ritieni sia corretta
 

SanFrancesco

New member
Ciao Eugenio,
ho settando la dir come:
[pre]
define('K_PATH_CACHE', '/home/<mio_user>/public_html/tmp/');
[/pre]
ho creato la relativa directory assegnando come permessi 777

e questo è il risultato:
[pre]
TCPDF ERROR: Unable to write file: /home/<mio_user>/public_html/tmp/__tcpdf_aba59c68647e1816f416b27d3eb979d7_img_67ded74a5fd445ffe2KUlYDH
[/pre]

Ho varie immagini salvate ed entrando nelle pagine di dettaglio di ognuna di queste ottengo sempre lo stesso risultato.

Nell'error_log di PHP ottengo invece:
[pre]
[20-Feb-2019 10:45:38 Europe/Rome] PHP Warning: fopen(/home/<mio_user>/public_html//home/<mio_user>/public_html/tmp/__tcpdf_0a3c8461b278d5cafd27394fc791ac2f_img_1664615a8bc552e27afF21Lu): failed to open stream: No such file or directory in /home/<mio_user>/public_html/include/tcpdf/include/tcpdf_static.php on line 1855
[20-Feb-2019 10:48:25 Europe/Rome] PHP Warning: fopen(/home/<mio_user>/public_html//home/<mio_user>/public_html/tmp/__tcpdf_aba59c68647e1816f416b27d3eb979d7_img_67ded74a5fd445ffe2KUlYDH): failed to open stream: No such file or directory in /home/<mio_user>/public_html/include/tcpdf/include/tcpdf_static.php on line 1855
[/pre]

è strano che la 'fopen' prenda in input un path dove ci concatena 2 volte la stringa
[pre]
/home/<mio_user>/public_html//home/<mio_user>/public_html/...
[/pre]
 

eugenio

Administrator
Staff member
Ciao,
farei due prove:

- se hai familiarità con PHP proverei, con un semplice script salvato nella stessa dir di dadabik, a scrivere nella dir /tmp (quella utilizzata prima del cambiamento che hai fatto in config TCPDF) un file abbastanza grande per vedere se in effetti PHP può scrivere nella cartella

- se devi comunque creare la cartella nel tuo spazio, utilizzerei un nome che non contenga "tmp" es.
/home/<mio_user>/public_html/temporanea/
 

SanFrancesco

New member
Ciao Eugenio,
ho creato il seguente script:
[pre]
<?
$imgdata = file_get_contents('Tiligul_liman_5_Mb.jpg', false);
//$fp = fopen("temporanea/Tiligul_liman_5_Mb.jpg","wb");
$fp = fopen("/tmp/Tiligul_liman_5_Mb.jpg","wb");
if (!$fp) {
echo 'Unable to write file';
} else {
//echo $imgdata;
fwrite($fp, $imgdata);
fclose($fp);
unset($imgdata);
echo 'File written';
}
[/pre]
L'ho chiamato 'saveimage.php' e l'ho salvato nella stessa dir di dadabik insieme all'immagine ( da 5MB ).
Quando lo richiamo da browser ottengo:
[pre]
File written
[/pre]

Ho provato anche ad utilizzare una cartella del tipo: '/home/<mio_user>/public_html/temporanea/' ed ottengo il seguente errore:
[pre]
TCPDF ERROR: Unable to write file: /home/<mio_user>/public_html/temporanea/__tcpdf_72e7826826391a0047f1e60d6f512a39_img_31131df99dda240b91EWJkyu
[/pre]
 

eugenio

Administrator
Staff member
Ciao,
hai fatto un ottimo test e sembra davvero che tutti i permessi ci siano, non riesco a spiegarmi il problema.
Ci possono essere anche in questo caso redirect particolari che non TCPDF non "digerisce"?
Qua:
https://stackoverflow.com/questions/10782329/tcpdf-error-cant-open-image-file-var-www-html-tcpdf-cache
ci sono una serie di soluzione ad un problema simile al tuo.
Se non riesci comunque a risolvere ti consiglio di aprire un email ticket di supporto scrivendo a support@dadabik.org
 

SanFrancesco

New member
Ciao Eugenio,
grazie mille per le risposte, in realtà potrei anche cambiare hosting, non è un problema. Più che altro mi serviva capire se stavo sbagliando qualcosa o meno.

A tal proposito hai una soluzione Hosting da consigliarmi su cui poter installare Dadabik?
 

eugenio

Administrator
Staff member
No, a prima vista non stai sbagliando nulla, per capire meglio il problema bisognerebbe appunto analizzare più nel dettaglio la cosa accedendo all'applicazione (aprendo un email ticket).

Una soluzione economica che consiglio è a2hosting, trovi qualche dettaglio in più qui:

https://dadabik.com/index.php?function=show_documentation#requirements

Ciao
 

SanFrancesco

New member
Ottimo, grazie tante.
Penso di fare entrambe le cose a questo punto: acquistare dello spazio su A2Hosting ed aprire un ticket per capire cosa non va.

Ciao Eugenio
 
Top