estrarre pdf(anche Doc) in formato blob da mysql

Salve a tutti,

  ho il seguente quesito. ho un db in cui sono salvati documenti in pdf, doc e txt. Sono stati salvati in un campoo  di tipo mediumblob. ora estraggo il formato binario ma non so come ricreare il file originale. quale strada devo percorrere?

utilizzo Ubuntu + php + mysql

Grazie

inviato 6 anni fa
cybaSsh
X 0 X

Dopo aver estratto i byte del file cosa devi fare? Salvarli sul disco? Inviarli all'utente?

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

buongiorno Gianni,

  dopo estratto dovrei dare la possibilità all'utente di salvarlo o visualizzarlo.

 :bye:

risposto 6 anni fa
cybaSsh
X 0 X

Quindi devi inviarlo al browser.

In questo articolo c'è uno script di esempio che invia un'immagine letta dal DB al browser:

http://www.phpnews.it/articoli/files-ed-immagini-in-mysql/4/

l'istruzione:

header('Content-Type: '.$tmp['tipo_file']);

per un PDF dovrebbe diventare:

header('Content-Type: application/pdf');

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

prezioso come sempre Gianni  ;)

risposto 6 anni fa
cybaSsh
X 0 X

ho qualche problema...ovvero 2:

utilizzo Jommla  8) come cms e sto implementando un componente:

1) utuilizzando il seguente codice all'inteno di una vista

// invio una intestazione contenente il tipo MIME
header('Content-Type: application/pdf');
 
// invio il contenuto del file
$blob=$curriculum[blobdata];
echo $curriculum[0][blobdata];

mi compaiono i geroglifici :( forse ho saltato qualche passaggio

2) vale anche per i file doc?

risposto 6 anni fa
cybaSsh
X 0 X

forse è meglio la soluzione che permette di salvare o paprire il file pdf

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$tmp[nome_file]\"");

pero' non so come si utilizza ho provato con

$tmp=$curriculum[0][blobdata];


header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=curriculum.pdf");

echo $tmp;

pero' il file è nel db

risposto 6 anni fa
cybaSsh
X 0 X

In che senso non sai come utilizzarlo? Hai visto gli esempi dell'articolo?

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

si. premetto che l'architettura è MVC, quindi dal model si ricava il blob del pdf o doc. lo spedisco alla vista. Quindi

dal template della vista

$curriculum=$this->curriculum;
$blob=$tmp[blobdata];

di seguito:

header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=curriculum.pdf");

sembra mettere dentro anche tutto il layout del sito

risposto 6 anni fa
cybaSsh
X 0 X

per inviare il documento devi ovviamente bloccare l'invio di qualsiasi altro output al browser, quindi inviare prima le intestazioni e poi i byte del file

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

ok grazie ora ci provo

risposto 6 anni fa
cybaSsh
X 0 X

Yes!

ho risolto con :

[glow=red,2,300]$pippo=ob_get_clean();[/glow]
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=curriculum.pdf");

echo $tmp[blobdata];

ora per i doc winzoz? hehehe

risposto 6 anni fa
cybaSsh
X 0 X

header("Content-Type: application/msword");

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

 O0

risposto 6 anni fa
cybaSsh
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda