Marcin M.

Marcin M. pracownik

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

Witam

Mam w bazie danych umieszczone zdjęcia (typ danych to BLOB).
Nie wiem jak je stamtąd wyciągnąć i zapisać na lokalnym dysku?

Proszę o podpowiedz.

Pozdrawiam
Marcin
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

.GetChunk()
Marcin M.

Marcin M. pracownik

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

Marcin M.:
.GetChunk()


Może coś więcej? Jakiś przykład?
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

http://bit.ly/1u08jM6
Paweł Broda

Paweł Broda Software Engineer

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

jako że baza to oracle to może jednak to:
http://psoug.org/reference/dbms_lob.html
jest tam przykład na zapisywanie do pliku w bloku plsql
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

Nie staraj się. Pytacz nie podał nawet w JAKIM języku. :) więc na odczepne podałem mu stare .GetChunk() z ADO (tego bez .DB)
Marcin M.

Marcin M. pracownik

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

Marcin M.:
Nie staraj się. Pytacz nie podał nawet w JAKIM języku. :) więc na odczepne podałem mu stare .GetChunk() z ADO (tego bez .DB)
Jeśli to było na odczepne to może sprecyzuję i może jakiś przykład w PHP.
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Jak pobrać - wyświetlić zdjęcie z bazy oracle

W Oracle specem nie jestem ale BLOB można przecież przetwarzać na różne sposoby, tym bardziej w PHP.
Zakładając, że ma się tabelę
CREATE TABLE zdjecia(id INT PRIMARY KEY, zdj BLOB);
można śmiało pobrać zdjęcie za pomocą
$conn = // Połączenie z bazą danych
$id = $_GET['id'];

$sql = "SELECT zdj FROM zdjecia WHERE id = " + $id;
$sth = oci_parse($conn, $sql);
oci_execute($sth);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

if ($row) {
$img = $row['zdj']->load();
header("Content-type: image/jpeg");
print $img;
}
przy założeniu, że foto to mime-type: image/jpeg. Jak chcesz wyświetlić to
  header("Content-type: image/jpeg");
print $img;
zamieniasz na
print('<img src="data:image/jpeg;base64,'.base64_encode($img).'" />');
bo przy wyświetlaniu trzeba pamiętać, że dane wkładamy inline i muszą byc przekodowane do base64.
Niestety przykład bardziej teoretyczny bez sprawdzenia czy działa bo nie używam Oracle'a.Ten post został edytowany przez Autora dnia 05.11.14 o godzinie 23:01



Wyślij zaproszenie do