jquery - Passing file data from .Net backend to Javascript front-end -


i have .net (vb/c#) backend on 1 server , javascript/jquery front-end on another. attempting pass file data backend front-end reading file in .net byte array, converting base64 string , passing js front-end along variable indicating file type.

once data in js front-end attempt convert base64 string file blob in order read readasdataurl() can displayed in iframe or downloaded client.

for testing using pdf file. process of passing data works file data not recognized pdf viewer. iframe loads viewer message file not being recognized pdf file.

i have done tone of searching , have gotten lot of questions answered searching stackoverflow eludes me.

any suggestions appreciated. thank you.

update: here vb.net code:

     sub onreadfiletoviewer(byval filepath string)         dim oktoview boolean = false         dim fileblob string = string.empty         dim fileencoded string = string.empty         if (file.exists(filepath))             try                 using fread filestream = new filestream(filepath, filemode.open, fileaccess.read)                     dim bytes() byte = new byte((ctype(fread.length, integer)) - 1) {}                     dim numbytestoread integer = ctype(fread.length, integer)                     dim numbytesread integer = 0                      while (numbytestoread > 0)                         ' read may return 0 numbytestoread.                         dim n integer = fread.read(bytes, numbytesread, _                             numbytestoread)                         ' break when end of file reached.                         if (n = 0)                             exit while                         end if                         numbytesread = (numbytesread + n)                         numbytestoread = (numbytestoread - n)                      end while                     numbytestoread = bytes.length                     fileencoded = system.convert.tobase64string(bytes)                 end using                 oktoview = true             catch ex exception                 '             end try         end if          if (oktoview)             ' code send data js fron-end         end if      end sub 

and js front-end converting base64 string blob , iframe preview:

    function previewfile(file) {       var fileblob = b64toblob(file,'application/pdf','');       var reader = new filereader();       var filetype = e.target.getattribute("type");       alert(filetype);       reader.onload = function (e) {          if (filetype)            $("#fileviewerdiv").append('<iframe id="filevieweriframe" class="fileviewer"></iframe>'); // + e.target.result + '">');            $("#filevieweriframe").attr('src', file); //e.target.result);            $("#filevieweriframe").dialog();           }      reader.readasdataurl(fileblob);     }      function b64toblob(b64data, contenttype, slicesize) {       contenttype = contenttype || '';       slicesize = slicesize || 512;        var bytecharacters = atob(b64data);       var bytearrays = [];        (var offset = 0; offset < bytecharacters.length; offset += slicesize) {           var slice = bytecharacters.slice(offset, offset + slicesize);            var bytenumbers = new array(slice.length);           (var = 0; < slice.length; i++) {              bytenumbers[i] = slice.charcodeat(i);           }            var bytearray = new uint8array(bytenumbers);            bytearrays.push(bytearray);        }        var blob = new blob(bytearrays, {type: contenttype});       return blob;  } 

the alert(filetype) display correct file type - application/pdf.

i have admit lifted b64toblob() function blog somewhere have forgotten 1 , have lost url site. apologies original author. if recognizes code , knows author/site please let me know

edit b64toblob() jeremy banks - based on answer


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -