rem ' BBjHtmlViewDownloadEvent::getSuggestedFileName
url$ = ::BBUtils.bbj::BBUtils.getWebServerURL()+"index.html"
filename$ = "zip.zip"; rem ' must be a binary file
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
window! = sysgui!.addWindow(25,25,600,500,url$,$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_RESIZE,"resize")
htmlview! = window!.addHtmlView(102,25,25,550,450,"",$$)
htmlview!.setCallback(htmlview!.ON_PAGE_LOADED,"on_page_loaded")
htmlview!.setUrl(url$)
clientType$ = htmlview!.getClientType()
clientVersion$ = htmlview!.getClientVersion()
title$ = window!.getTitle() + " " + clientType$ + " " + clientVersion$
window!.setTitle(title$)
print "getDownloadDirectory ",htmlview!.getDownloadDirectory()
download$ = System@.getProperty("user.home")+"/Downloads"
htmlview!.setDownloadDirectory(download$)
print "getDownloadDirectory ",htmlview!.getDownloadDirectory()
copyFromClient = 0
if (msgbox("ON_HTMLVIEW_DOWNLOAD?",4+32)=6) then
htmlview!.setCallback(htmlview!.ON_HTMLVIEW_DOWNLOAD,"on_htmlview_download")
copyFromClient = msgbox("Copy downloaded files from client to server?",4+32)=6
endif
process_events
eoj:
release
resize:
gosub event
width = event!.getWidth() - 50
height = event!.getHeight() - 50
htmlview!.setSize(width,height)
print width,height
return
event:
event! = sysgui!.getLastEvent()
print event!.getEventName()," ",event!.getControl()
return
on_page_loaded:
event! = sysgui!.getLastEvent()
print event!.getEventName()," ",event!.getUrl()
if event!.getUrl().equals("about:blank") then return
htmlview!.clearCallback(htmlview!.ON_PAGE_LOADED)
rem ' This must be a binary file to trigger a file download
script$ = "window.location.href=""/"+filename$+""""
print script$
htmlview!.executeScript(script$)
return
on_htmlview_download:
event! = sysgui!.getLastEvent()
print event!.getEventName()," suggested=",event!.getSuggestedFileName()," filename=",event!.getClientFileName()," size=",event!.getClientFileSize()
if (copyFromClient) then
tc! = bbjapi().getThinClient()
fs! = tc!.getClientFileSystem()
cf! = fs!.getClientFile(event!.getClientFileName())
if (cf!.exists()) then
server$ = cf!.copyFromClient()
print "Copied client file ",cf!," to server file ",server$
server = unt
open (server)server$
xfin$ = xfin(server)
bytes = dec(xfin$(1,8))
close (server)
print "Server file ",server$," size:",bytes," bytes."
else
print "Client file ",cf!," doesn't exist."
endif
endif
return
|