Displaying images stored in blob columns
I've seen discussions on how to upload and download blob columns but I want to store a blob in the database and be able to display the blob (which is a jpg) as I would any other <img> on my web page. Instead of having to store the jpg on a file system somewhere, and use the data in the database to formulate a link to the image on the file share, I want to pull it right out of the blob. Does someone have a sample of how to do this? Can I do this?
Thanks
Laurence,
If you uploaded the image via the Application Builder, you can use an image tag like so:
<img src="#WORKSPACE_IMAGES#my_image.jpg" />If you followed the upload/download how to, you should be able to reference an image like this:
<img src="download_my_file?p_file=1232897645" />Where 1232897645 is the unique ID of the uploaded image. To make referencing images easier, you could write a version of the download_my_file procedure that takes in the name of the image as a parameter.
Sergio
Similar Messages
-
Problem displaying PDF stored in BLOB column
Hello everyone.
I've been trying to follow this tutorial http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::p11_question_id:232814159006 on displaying PDFs stored in BLOB columns. This is being performed on Apex 4.2, with my DB running 11g. I've got my procedure, which I'll post below:
create or replace procedure "PDF" (p_id IN gvo_documents.doc_id%type)
is
l_lob blob;
l_amt number default 30;
l_off number default 1;
l_raw raw(4096);
begin
select contents into l_lob
from gvo_documents
where doc_id = p_id;
-- make sure to change this for your type!
owa_util.mime_header( 'application/pdf' );
begin
loop
dbms_lob.read( l_lob, l_amt, l_off, l_raw );
htp.prn( utl_raw.cast_to_varchar2( l_raw ) );
l_off := l_off+l_amt;
l_amt := 4096;
end loop;
exception
when no_data_found then
NULL;
end;
end;
I am trying to run this through a PL/SQL dynamic region and while I don't receive any error's, the content displayed is a huge mess of garbled text and odd characters. I've tried to run this procedure on numerous other document types, including word files and jpeg images, all with the necessary changes in my procedure, and regardless of what I use, I still get a large mess of strange characters. Does anyone have any information or ideas about why this is happening?If I understand correctly, your requirements needs to be broken down into two problems:
1) click link that pops up a window displaying a new APEX page
2) an APEX page the displays the document, not downloads it.
I haven't done #1 (yet).
However, you may be able to generate a URL that points to the new page as part of the SELECT statement for the Report.
This has a related question, but no answer yet:
open pdf in popup browser window
The key is target="_blank" for the anchor tag.
To generate the URL, you should use the APEX_UTIL.prepare_URL() function.
If that doesn't work, a Dynamic Action that does some magical JavaScript stuff may be needed.
For #2, I lost the URL that showed how to display a PDF as part of a "form" page.
From what I remember:
Start with a blank page with one blank HTML region (all the Items go in the HTML region)
Add an Item for the PK/Doc_ID
part I forgot Create a Data Manipulation Process
- Automated Row Fetch
- On Load - After Header
- (stuff for your table/view)
part I forgot Create an (I believe) "File Browser" item type. For Settings:
- Storage Type "BLOB column specified in Item Source" (and place the column name of the BLOB there)
- MIME Type Column: (column name) -- since you have multiple types, this is a MUST HAVE
- Filename Column: (column name) -- I highly recommend you have this.
- Content Disposition == INLINE <-- this is the kicker
Also, you will need a Browser Plugin for each of the MIME Types (otherwise, the browser may try to 'download' the file)
Browsers can handle Image types internally. Adobe's plugin can handle PDFs. I don't know about Word/Excel.
Again, I don't remember the exact details, but that should cover most of it.
MK -
Displaying the image stored in Blob column
Hi all,
I'm trying to print the report with an image. I've stored the image in a Blob column and the format of the image is Jpg.
I'm using the Reports 10g(10.1.2.0.2). When I'm trying to print the report, I'm getting an error Rep-62203. I want to know whether there are any settings which i need to set to display the image item. I mean to say that are there any registry settings.
Regards,
Alok Dubey
Edited by: Alok Dubey on Dec 1, 2008 12:55 PMHi all,
I'm trying to print the report with an image. I've stored the image in a Blob column and the format of the image is Jpg.
I'm using the Reports 10g(10.1.2.0.2). When I'm trying to print the report, I'm getting an error Rep-62203. I want to know whether there are any settings which i need to set to display the image item. I mean to say that are there any registry settings.
Regards,
Alok Dubey
Edited by: Alok Dubey on Dec 1, 2008 12:55 PM -
Display images stored in BLOB in html pages via JSP
Hello,
My images are stored in BLOB column of other base than portal.
in JSP i have to display them in html pages.
anybody have already did the same thing ?teggvb6,
I believe you should be able to get it to work by doing the grants to the user specified in the DAD (i.e. the user that is logging into Oracle) rather than PUBLIC (someone else may correct me on this?).
If you're concerned that the procedure could be called by others then I guess you could do some sanity checking within the procedure, for example checking v('APP_USER') or maybe v('SESSION') or perhaps do something clear with the REFERER http header? I haven't thought this through yet but I'm pretty sure you should be able to tie it down a bit more. -
Problem in displaying images stored in Blob variable
Hi all,
I have a requirement where i need to retrieve the image stored in Blob variable in DB and display the image in JSP page.
I have written the below code to achieve this, it works fine
In JSP, I am calling a action in the <img tag
<img src='downloadPhoto.page?method=getPhotoInBytes&accessoryModelPictures.id.accessoryNumber=${photo.id.accessoryNumber}/> In my controller class
InputStream inputStream=accessoryPicturesLOB.getPicture().getBinaryStream();
byte[] theBytes = new byte[inputStream.available()];
inputStream.read(theBytes);
response.setContentType("image/jpg");
response.getOutputStream().write(theBytes);But the problem is, *if i right click on the image and select save picture as option i get a error saying "The system cannot find the specified file "*
Can you please tell me what is wrong in my approach/code
Is there any better approach to display image that is store in Blob variable ?
Please help on this.
Thanks in advance.You need at least to set the filename in the content disposition header.
-
Image not displayed programmtically stored in blob column
Hi,
I altered student table to store photoes of students. For this I added STIMG as blob, MIMETYPE,FILENAME,IMAGE_LAST_UPDATE COLUMNS to studentadmitted table. Image stored and displayed in report very nicely. With the following query
select "ROWID",
"ST_ID",
"FIRST_NAME",
"LAST_NAME",
"FFIRST_NAME",
"FLAST_NAME",
"COURSE_ID",
"SESSION_ID",
"CONTACT#" "CONTACT_H",nvl(dbms_lob.getlength(STIMG),0) IMAGE
from "#OWNER#"."STUDENTADMITTED"
Images are displayed in column but they have different sizes.
To control this I modified the query like this
select "ROWID",
"ST_ID",
"FIRST_NAME",
"LAST_NAME",
"FFIRST_NAME",
"FLAST_NAME",
"COURSE_ID",
"SESSION_ID",
"CONTACT#" "CONTACT_H",decode(nvl(dbms_lob.getlength(stimg),0),0,null,
'<img style="border: 4px solid #CCC; -moz-border-radius: 4px; -webkit-border-radius: 4px;" '||
'src="'||
apex_util.get_blob_file_src('P16_stIMG',st_id)||
'" height="75" width="75" alt="Product Image" title="Product Image" />')
detail_img
from "#OWNER#"."STUDENTADMITTED"
Report did'nt run with following error,
report error:ORA-06502: PL/SQL: numeric or value error: character to number conversion error
Win Server 2008
Oracle Database :11G R2
Apex Ver :4.2
SajjadSajjad wrote:
I altered student table to store photoes of students. For this I added STIMG as blob, MIMETYPE,FILENAME,IMAGE_LAST_UPDATE COLUMNS to studentadmitted table. Image stored and displayed in report very nicely. With the following query
select "ROWID",
"ST_ID",
"FIRST_NAME",
"LAST_NAME",
"FFIRST_NAME",
"FLAST_NAME",
"COURSE_ID",
"SESSION_ID",
"CONTACT#" "CONTACT_H",nvl(dbms_lob.getlength(STIMG),0) IMAGE
from "#OWNER#"."STUDENTADMITTED"
Images are displayed in column but they have different sizes.Stick to declarative BLOB images as above. They can be resized in reports using CSS. Add a style sheet in the page Inline CSS property:
td[headers="IMAGE"] img {
display: block;
width: 75px;
border: 1px solid #999;
padding: 6px;
background: #f6f6f6;
}where the <tt>IMAGE</tt> value in the attribute selector is the table header ID of the image column. Setting only one dimension (in this case the width) scales the image with the correct aspect ratio. (The border, padding and background properties are just eye candy...)
However, if the original images are large then scaling them in the browser this way is a huge waste of bandwidth and produces poorer quality images than creating proper scaled down versions using image tools. Downloading megapixel images and then reducing them to thumbnail size results in pointlessly pushing millions of bytes that will never be seen.
For improved performance and image quality, and where you require image-specific scaling the best approach is to use the database ORDImage object to produce thumbnail and preview versions automatically. Note that this is not possible in Oracle XE as Multimedia is not included -
Image stored in BLOB column crashes report's engine
Hi,
I have a report where I display logos stored in a BLOB column on the DB.
The report is generated as RTF.
When images have sizes of 624x168 or 423x324 everything is OK. One image, 1221x224, is crashig the report with a dr. Watson error.
Any idea why?
The size of the "bad" image file is 38K, and the "good" ones are about 300K.
MonicaSajjad wrote:
I altered student table to store photoes of students. For this I added STIMG as blob, MIMETYPE,FILENAME,IMAGE_LAST_UPDATE COLUMNS to studentadmitted table. Image stored and displayed in report very nicely. With the following query
select "ROWID",
"ST_ID",
"FIRST_NAME",
"LAST_NAME",
"FFIRST_NAME",
"FLAST_NAME",
"COURSE_ID",
"SESSION_ID",
"CONTACT#" "CONTACT_H",nvl(dbms_lob.getlength(STIMG),0) IMAGE
from "#OWNER#"."STUDENTADMITTED"
Images are displayed in column but they have different sizes.Stick to declarative BLOB images as above. They can be resized in reports using CSS. Add a style sheet in the page Inline CSS property:
td[headers="IMAGE"] img {
display: block;
width: 75px;
border: 1px solid #999;
padding: 6px;
background: #f6f6f6;
}where the <tt>IMAGE</tt> value in the attribute selector is the table header ID of the image column. Setting only one dimension (in this case the width) scales the image with the correct aspect ratio. (The border, padding and background properties are just eye candy...)
However, if the original images are large then scaling them in the browser this way is a huge waste of bandwidth and produces poorer quality images than creating proper scaled down versions using image tools. Downloading megapixel images and then reducing them to thumbnail size results in pointlessly pushing millions of bytes that will never be seen.
For improved performance and image quality, and where you require image-specific scaling the best approach is to use the database ORDImage object to produce thumbnail and preview versions automatically. Note that this is not possible in Oracle XE as Multimedia is not included -
How to display Images stored in a database using javascript
Hi.
I have some images stored in a table and I need to display them using javascript. The images are stored in BLOB columns: I would like to know if I can put them on a directory and then get it from there using BFILENAME function.
Any suggestion?
Regards,
JeannineHi All,
Yes DuraiRaja - i am using the document.getElementById(' ').
In my app, I have a Main controller calling a View - Default.HTM,
This Default.HTM, in turn loads up three trays T1, T2, T3 and these tray elements in turn call up the controllers ctrl1, ctrl2, ctrl3 associated to them.
CTRL1 calls a view - View1 - V1.htm, which has the below code.
And on the below page all that i am trying to do is validate if "FieldVal" is blank or not.
I get an error on IE as "Object required"
I get a HTTP 501/505 error when i try to upload the code.
Thanks all ! -
How to insert a pdf or jpeg image into a blob column of a table
How to insert a pdf or jpeg image into a blob column of a table
Hi,
Try This
Loading an image into a BLOB column and displaying it via OAS
The steps are as follows:
Step 1.
Create a table to store the blobs:
create table blobs
( id varchar2(255),
blob_col blob
Step 2.
Create a logical directory in the database to the physical file system:
create or replace directory MY_FILES as 'c:\images';
Step 3.
Create a procedure to load the blobs from the file system using the logical
directory. The gif "aria.gif" must exist in c:\images.
create or replace procedure insert_img as
f_lob bfile;
b_lob blob;
begin
insert into blobs values ( 'MyGif', empty_blob() )
return blob_col into b_lob;
f_lob := bfilename( 'MY_FILES', 'aria.gif' );
dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
dbms_lob.loadfromfile( b_lob, f_lob, dbms_lob.getlength(f_lob) );
dbms_lob.fileclose(f_lob);
commit;
end;
Step 4.
Create a procedure that is called via Oracle Application Server to display the
image.
create or replace procedure get_img as
vblob blob;
buffer raw(32000);
buffer_size integer := 32000;
offset integer := 1;
length number;
begin
owa_util.mime_header('image/gif');
select blob_col into vblob from blobs where id = 'MyGif';
length := dbms_lob.getlength(vblob);
while offset < length loop
dbms_lob.read(vblob, buffer_size, offset, buffer);
htp.prn(utl_raw.cast_to_varchar2(buffer));
offset := offset + buffer_size;
end loop;
exception
when others then
htp.p(sqlerrm);
end;
Step 5.
Use the PL/SQL cartridge to call the get_img procedure
OR
Create that procedure as a function and invoke it within your PL/SQL code to
place the images appropriately on your HTML page via the PL/SQL toolkit.
from a html form
1. Create an HTML form where the image field will be <input type="file">. You also
need the file MIME type .
2. Create a procedure receiving the form parameters. The file field will be a Varchar2
parameter, because you receive the image path not the image itself.
3. Insert the image file into table using "Create directory NAME as IMAGE_PATH" and
then use "Insert into TABLE (consecutive, BLOB_OBJECT, MIME_OBJECT) values (sequence.nextval,
EMPTY_BLOB(), 'GIF' or 'JPEG') returning BLOB_OBJECT, consecutive into variable_blob,
variable_consecutive.
4. Load the file into table using:
dbms_lob.loadfromfile(variable_blob, variable_file_name, dbms_lob.getlength(variable_file_name));
dbms_lob.fileclose(variable_file_name);
commit.
Regards,
Simma........ -
Radio Button group with images stored as BLOB files in database
Hey all!
I have radio button group, my idea is that radio button's LOV must display images, I mean BLOB files stored in a table.
How can I do this?Hello Ken,
I asked similar question in the past, and I believe the answer is still the same.
Select List as an option of a Radio Group
In your case, I think you can use a select list with added functionality, like "Select List with Branch to Page" or "Select list with Submit", or you can just attach an onChange event (JavaScript) to each select list. The effect should be similar to a radio group as soon as the user select one item from any of the select lists, you can fire some action, based on the select list value.
Hope this can help,
Arie. -
Displaying images from ORDSYS.ORDIMAGE columns
Does anyone know, if Oracle9i Reports can display images fetched from ORDIMAGE columns in the database? If so, could you give me a brief explanation how?
Thanks in advance!Jacob,
As of now , it is not supported. It is under development for next release.
It currently supports images stored in DB as LOBs
Thanks
The Oracle Reports team -
Displaying images stored in SQL Server
Is there someway of displaying images stored within SQL
Server. Is FDS required? Prefer a method to display images without
using FDS; Web Service would be okay if that can workI do that sort of thing using PHP and mySQL the binary part
of the image is stored in a BLOB field (Binary Large OBject) along
the rest of the information necessary for the http headers (e.g.
mime type, file name, file size) being staored in their own fields.
That info is then used to build the file using PHP. The PHP
file contains a mySQL query whos result is echoed with the
appropriate headers. The URL points at the PHP file rather than at
any saved image.
Here's the php:
<?
# display_imagebank_file.php
# Note: the ID is passed through the url e.g.
# this_files_name.php?id=1
# connect to mysql database
mysql_connect('HOST', 'USERNAME', 'PASSWORD');
mysql_select_db('DATABASE');
# run a query to get the file information
$query = mysql_query("SELECT FileName, MimeType, FileSize,
FileContents FROM blobTable WHERE ID='$id'");
# perform an error check
if(mysql_num_rows($query)==1){
$fileName = mysql_result($query,0,0);
$fileType = mysql_result($query,0,1);
$fileSize = mysql_result($query,0,2);
$fileContents = mysql_result($query,0,3);
header("Content-type: $fileType");
header("Content-length: $fileSize");
header("Content-Disposition: inline; filename=$fileName");
header("Content-Description: from imagebank");
header("Connection: close");
echo $fileContents;
}else{
$numRows = mysql_num_rows($query);
echo "File not found <br>";
echo $numRows;
echo " is the number of rows returned for id = ";
echo $ID;
?>
Hope that helps
Phil -
Inserting Image into a BLOB column in Oracle9i
Hi,
I am unable to insert image into a BLOB column. I am using Forms 6i REL 2 and Oracle 9i. But I could do it on Oracle 8i with same Forms version.
Same thing is true for CLOB in 9i.
Would you please try with this code?
TABLE
Create table x
(Id number,
Name CLOB,
Pict BLOB);
WHEN-BUTTON-PRESSED trigge
declare
x varchar2(265);
begin
x := get_file_name;
read_image_file (x, 'GIF', 'picture.pict');
end;
Take care,
TarekForms 9i and Oracle 9i work fine together for this case.
-
How to display images in a table column?
Hi,
In a VC model, I have to display images in a table column for each record found.
How can this be done?
Regards,
NitinHi Nitin,
It can be done by adding to the table the Image control (can be found under Advanced Controls in the Compose panel).
In the URL property (in the Configure panel of the Image control) you can define any expression that will return the image URL. For example:
="http://hosting.site.url/"&@ImageNameField
Regards,
Udi
Edited by: Udi Cohen on Jun 11, 2008 1:39 PM -
Rendering images based on BLOB columns
Hello
I'm using JDevelpor 10G ..
I want to render image from BLOB column , and its the first time working with servlet , I read this article
http://www.pascalalma.net/2008/04/22/oracle-adf-medior-rendering-images-based-on-blob-columns/
and I want to ask some questions ??
- How can I check that the servlet is run .. I use this to call the servlet "" Do not laugh .. I am really new "
<af:objectImage source="/render_image?img_id=#{row.ImageId}"/>
You should read the article to understand my question
rgdsdone , my problem was with mapping
If you have any problem with this case I can help
contact me
[email protected]
Maybe you are looking for
-
Multiple Animations for a single MovieClip sprite
Ok, after hours of exhausting searching, and having to learn how to animate a simple sprite for the 100th time, I hope I might found I more specific, and better explained answer to my problem. I'm trying to make a flash game, of course, and I want my
-
XML Publisher Report not displaying Chart/Graph in Excel Output
Hi All, We are currently on Oracle EBS 11.5.10.2 I am facing an issue with XML Publisher based report when i try to fetch the output in Excel. We have created an RTF in which i have embedded a graph. While viewing the output in PDF everything seems t
-
Time Machine no longer backs up over the network
When I first got Leopard, I plugged my MyBook hard drive into my iMac and set it as the Time Machine drive. Then I got on my wife's Macbook Pro and set it to back up wirelessly to the iMac's Time Machine drive. Everything was fine. I noticed this mor
-
Value from info record in work order
Hi, We have created some info record.While creating some work orders we enter info record number in peration-external tab-price field. If in some earlier order info update is tick while creating purchase order having this info record then in new work
-
Why doesn't my dku-5 usb cable work anymore with n...
I have a Nokia 6100 and have used a cable DKU-5 problem free for 4 years Sychronized my phone as per normal yesterday. On quitting PC Suite, it informs me that a software update is available, so I press okay. Now I appareently need a new cable CA-42