Mam oto taki kodzik:
<?php $conn = oci_connect('user', 'pass', ' (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = serv_name) ) ) '); $stmt=oci_parse($conn, "SELECT * FROM baza2.pliki WHERE id=123"); oci_execute($stmt, OCI_DEFAULT); while(oci_fetch($stmt)) { $npliku=oci_result($stmt, 2); $katalog="./temp/"; $sciezka=$katalog.$npliku; oci_result($stmt, 3)->writetofile($sciezka); } ?>
Wszystko w nim działa jednak nie tak jakbym chciał. Dla wyjaśnienia powyższy kod pobiera nazwę pliku (oci_result($stmt, 2)) oraz sam plik z pola BLOB (oci_result($stmt, 3)) bazy danych oracle, zapisuje go w katalogu TEMP oraz generuje nagłówki, które z kolei ukazują standardowe okno pobierania przeglądarki. Mój problem polega na tym, że taki plik z bazy muszę zapisywać na dysk serwera i dopiero później za pomocą HEADER mogę zapisać na dysk lokalnego kompa. Jak to zrobić żeby w "locie" zapisać plik z pola BLOB na dysk lokalny bez konieczności pośredniego zapisu do TEMPa.
Pozdrawiam