OCI-Lob::load
(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)
OCI-Lob::load — Возвращает содержимое объекта LOB
Описание
string OCI-Lob::load
( void
)
Возвращает содержимое объекта LOB. Так как выполнение скрипта прекратится при превышении memory_limit, необходимо убедиться, что LOB не превышает этого ограничения. Поэтому, в большинстве случаев этот метод рекомендуется заменять на OCI-Lob::read.
Возвращаемые значения
Возвращает содержимое объекта, или FALSE
при ошибках.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- Oracle OCI8
- Функция OCI-Lob::append() - Добавляет данные из объекта LOB в конец другого объекта
- Функция OCI-Lob::close() - Закрывает дескриптор объекта LOB
- Функция OCI-Lob::eof() - Проверяет, находится ли указатель LOB на конце объекта
- Функция OCI-Lob::erase() - Очищает указанную часть объекта LOB
- Функция OCI-Lob::export() - Сохраняет содержимое объекта LOB в файл
- Функция OCI-Lob::flush() - Очищает и записывает буфер объекта LOB на сервер
- Функция OCI-Lob::free() - Освобождает ресурсы, связанные с дескриптором LOB
- Функция OCI-Lob::getBuffering() - Возвращает текущее состояние буферизации большого объекта (LOB)
- Функция OCI-Lob::import() - Записывает содержимое файла в объект LOB
- Функция OCI-Lob::load() - Возвращает содержимое объекта LOB
- Функция OCI-Lob::read() - Возвращает часть объекта LOB
- Функция OCI-Lob::rewind() - Переводит указатель объекта в начало большого объекта
- Функция OCI-Lob::save() - Сохраняет данные в LOB
- Функция OCI-Lob::saveFile() - Псевдоним OCI-Lob::import
- Функция OCI-Lob::seek() - Устанавливает позицию внутреннего указателя LOB
- Функция OCI-Lob::setBuffering() - Изменяет текущее состояние буферизации большого объекта (LOB)
- Функция OCI-Lob::size() - Возвращает размер объекта LOB
- Функция OCI-Lob::tell() - Возвращает текущую позицию внутреннего указателя объекта LOB
- Функция OCI-Lob::truncate() - Обрезает большой объект
- Функция OCI-Lob::write() - Записывает данные в объект LOB
- Функция OCI-Lob::writeTemporary() - Записывает временный большой объект (LOB)
- Функция OCI-Lob::writeToFile() - Псевдоним OCI-Lob::export
Коментарии
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!
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 :)