BLOB and IE 11

Please log all suggestions for improvements and enhancements to Visual LANSA here. Entries may be acknowledged and may be added to the list for possible inclusion in later releases of Visual LANSA.
Post Reply
LANSAGuru
Posts: 68
Joined: Thu Mar 24, 2016 5:31 am

BLOB and IE 11

Post by LANSAGuru » Sat Aug 10, 2019 8:26 am

Danny,

If you have a blob and display it like this...
(excerpt)

Define_Com Class(#PRIM_WEB.Page) Name(#Page1) Description('Web Page') Displayposition(2) Height(499) Parent(#COM_OWNER) Tabposition(2) Tabstop(False) Top(36) Width(646)
Mthroutine Name(ShowAsset)
Define_Map For(*INPUT) Class(#FP_ESBLOB)
#page1.Source := *null
#com_Self.Show
#COM_OWNER.Placement := FullScreen
#Page1.Source := #FP_ESBLOB /* not working in IE or Edge */
Endroutine

It works beautifully. Originally this did not work for IE or Edge, but Edge seems to have been fixed.

* Set the source for the web page to the BLOB
* Format is something like this...psuedo url
* blob:http://development:2354/a52a550d-775d-4 ... 95282d0563

IE 11, which is supported still does not work.Researching this I find we are using createObjectURL function.

I found a bunch of complaints about this not working...here is just one...

https://stackoverflow.com/questions/240 ... rl-in-ie11

SUGGESTSION: can we get a polyfill for this? I could write a widget I suppose but I have a couple of problems. I don't think I can pass anything that large to a widget...correct me if I am wrong. I thought we were limited to maybe something like 64K string at the moment.

So what are the odds of getting a fix and/or polyfill for IE 11.
And, #2, can I pass something like a BLOB to a widget successfully...in case I need to create a workaround in the short run.

Thanks,
Paul

BrendanB
Posts: 109
Joined: Tue Nov 24, 2015 10:29 am

Re: BLOB and IE 11

Post by BrendanB » Tue Sep 03, 2019 12:52 pm

Paul,

you can use https://docs.lansa.com/14/en/lansa016/p ... reader.htm to read the blob.

so call a method something like below should do the trick.

Code: Select all

Mthroutine Name(ReadBlob)
Define_Map For(*INPUT) Class(#STD_BLOB) Name(#iBlob)

Define_Com Class(#PRIM_WEB.BlobReader) Name(#BlobReader)

#BlobReader.Read( #iBlob )

Evtroutine Handling(#BlobReader.Completed) Data(#Data)

#Page1.Source := 'data:' + #iBlob.MimeType + ';base64,' + #Data

Endroutine

Endroutine

Post Reply