estrarre file da un DB mysql

Ciao a tutti,

seguendo le indicazioni dell'articolo riguardante l'inerimento di immagini in un db, ho provato ad uploadare un file pdf. A quanto mi risulta, il file è stato salvato nel db.

Per aprilo volevo mettere un link con il nome del file. Questo però non funziona perchè ricerca il file come se fosse stato uploadato nella directory del sito e non nel db.

Come posso a questo punto aprire il file????

Grazie :bye:

inviato 10 anni fa
stellina
X 0 X

Prendi spunto dallo stesso articolo che hai citato e vedi come funziona lo script che mostra le immagine salvate nel DB. IL procedimento è molto simile, l'unica cosa che cambia sono gli header da inviare, perché stavolta bisogna informare il browser che sta per ricevere un file:

header("Content-Type: application/octet-stream");

header("Content-Disposition: attachment; filename=$nome_file");

dove ho supposto che in $nome_file ci sia il nome che assumerà il file inviato all'utente.

Se vuoi provare a farlo aprire dal browser invece devi usare

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

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ciao gianni ma volendo posso mettere diversi tipi di file in una stessa pagina:

ho sow.php che estrae il file scelto dal DB e dovrebbe  farlo scaricare [rar,zip ecc] che header devo mettere alla pagina?

e questi header come li personalizzo in base al formato del file?? :)

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Lo script che permette di scaricare un file può inviare solo un file alla volta. Per evitare che il browser tenti di aprire il file (cosa che succede con i PDF ad esempio) bisogna usare le intestazioni:

header("Content-Type: application/octet-stream");

header("Content-Disposition: attachment; filename=$nome_file");

C'è da dire che a volte IE non le digerisce e preferisce ricevere

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

header("Content-Disposition: inline; filename=$nome_file");

ma questa è la solita storia di zio Bill...

Se si inviano le intestazioni opportune per il tipo di file si permette al browser di gestire correttamente il file, ad esempio per visualizzarlo direttamente (cosa che si fa per le immagini). Un elenco delle varie intestazioni si trova qui:

http://www.webmaster-toolkit.com/mime-types.shtml

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho seguito le tue indicazioni, ho cambiato gli header e ho inderito application/pdf perchè, se non ho capito male, cosi il file veniva aderto dal browser.

Però non è cosi mi compare sempre la finestra che mi chiede vuoi aprire o salvare il file..

cosa posso fare per poterlo aprire subito?

 :-\

risposto 10 anni fa
stellina
X 0 X

Oltre al MIME Type stai inviando qualche altra intestazione?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

un modo per inserire automaticamente il mime nel db insieme al contenuto-nome-estensione del file c'é?

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Si può provare ad usare il valore di $_FILES['file_inviato']['type']; che si ottiene quando si effettua l'upolad del file sul server. Per le immagini funziona.

Oppure si può ricavare l'estensione del file e da questa inviare il corretto MIME Type, secondo la tabella che ho segnalato prima.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Mi è bastato scrivere INLINE al posto di attachment. In questo modo la pagina viene direttamente aperta dal browser.

 :bye:

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