4D was returning an error ousted of the blob due to a typo in the request. I have it working now. One letter can sure waste a lot of one’s time.
John John Baughman 1331 Auwaiku Street Kailua, Hawaii 96734 (808) 262-0328 john...@hawaii.rr.com > On Sep 2, 2018, at 8:26 AM, JOHN BAUGHMAN via 4D_Tech <4d_tech@lists.4d.com> > wrote: > > I have a Web App running on the same machine as 4D Sever and all requests to > 4D are done over localhost. I am currently displaying PDFs by having the Web > App get the path to the pdf file from 4D then serve the file to it’s viewer > in the browser. > > This all works fine, but after some testing have found that it is > significantly slower than serving the blob directly from 4D with WS SEND > BLOB. I have only been able to get this to work if I make the request for the > pdf directly from the browser, not via the Web App. In other words using the > address bar of the browser or the HTML viewer of the Web App in the browser. > The problem is that this exposes the request including the path to the PDF on > the server. > > I need to have the Web App on the server make the request to 4D over local > host then serve the PDF to the web app’s viewer in the browser. The closest > I could get to being successful was by having the web app create a simple web > page with the returned data and send the page to the web app’s viewer in the > browser… > > //web app request > pdfBlob = socket1.Get("http://127.0.0.1:9000/getDocumentBlob?path="+docPath, > 30) //send request to 4D > pdfBlob = EncodeBase64(pdfBlob,0) > > //create the web page > <!DOCTYPE html> > <html> > <head> > <meta charset="UTF-8"> > </head> > <body. TESTING TESTING> > <object data="data:application/pdf;base64,pdfBlob ” type="application/pdf" > width="100%" height="675px"> > </object> > </body> > </html> > //send the page to the viewer in the browser > > //4D response: > $path:=Convert path POSIX to system(WebRequestGetFormField ("path")) > C_BLOB($blob) > DOCUMENT TO BLOB($path;$blob) > WEB SEND BLOB($blob;"application/pdf") > > All I get, however, is “TESTING TESTING” followed by a grey block where the > pdf would be displayed. It has been suggested to me that the problem may be > encoding and the following was suggested for encoding the response… > > pdfBlob = EncodeBase64(DefineEncoding(pdfBlob ,Encodings.UTF8),0). //still a > grey block > > Not completely understanding how encoding really works I am not sure how to > ask this, but what encoding is 4D using to send the PDF blob. Or can somebody > explain why this doesn’t work. > > Thanks, > > John > > > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > ********************************************************************** ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **********************************************************************