Ps. To prevent IE errors like 'File not found!' after downloading file from db I recommend to add next two lines into header:
header('Cache-Control: max-age=0');
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
With this, IE will open any file normally :)
OCI-Lob->load
(PHP 5, PECL oci8 >= 1.1.0)
OCI-Lob->load — Retourne le contenu d'un LOB
Description
OCI-Lob
string load
( void
)
Lit le contenu d'un LOB Oracle. Le script peut être interrompu à cause de memory_limit, si ce dernier dépasse la limite. Dans la plupart des cas, il est recommandé d'utiliser la fonction OCI-Lob->read à la place. En cas d'erreur, OCI-Lob->load() retourne FALSE.
Valeurs de retour
Retourne le contenu de l'objet, ou FALSE si une erreur survient.
OCI-Lob->load
FaLL3N at mail dot ru
25-Dec-2006 01:49
25-Dec-2006 01:49
FaLL3N at mail dot ru
25-Oct-2006 01:34
25-Oct-2006 01:34
I'll give you example how to download a file from db without storing it on server's FS:
It works like this - point yor browser to index.php?name=file.ext
Just make sure that file "file.ext" exists in your db!
Code:
<?php
$dbConnection=ocilogon('user','pass','data.world'); //login stuff
$sql_SelectBlob='select document_body,filename from tdocuments where id=1'; //selecting a blob field named 'document_body' with id = 1
$statement=OCIParse($dbConnection,$sql_SelectBlob);
OCIExecute($statement) or die($sql_SelectBlob.'<hr>');
if(OCIFetch($statement)) //if file exists
{
$a=OCIResult($statement,"DOCUMENT_BODY");
}
header('Content-type: application/octet-stream;');
header('Content-disposition: attachment;filename='.$_GET['name']);
print $a->load();
//browser promts to save or open the file
?>
Have fun!
