SendFile Method
Syntax
Arguments
- FilenameCharacter
The name of the file to written to the response's output.
- PromptToSaveLogical
Add the Content-Disposition header to the client will prompt for save. This defaults to .F. when an OutputFilename is not specified. It defaults to .T. when an OutputFilename is specified.
- OutputFilenameCharacter
Default = "__not__specified__". The name the client should use when saving the file. This is the filename shown in the save file dialog. The user can change the filename at their discretion when they save the file on the client.
Description
Write the content of a file to output stream
Discussion
Context.Response.SaveFile() Write the content of a file directly to the response's output stream.
For example, the code below creates a file called "MyFile.txt" and sends it to the client where it will either be displayed in the browser or the user will be prompted to download the file.
dim FileKey as c = "MyFile.txt" context.session.SaveDataAsFile(FileKey,"Hello World, this is a session file") context.response.SendFile(Session.FormatFileDataURL(FileKey))
If you want to prompt the user to download the file, you can pass .t. for the second parameter. When PromptToSave is true, the user will be asked to save the file. You can optionally specify a default filename to show in the save dialog as the third parameter. If you do not specify an OutputFilename, the server filename is used.
context.response.SendFile(Session.FormatFileDataURL(FileKey), .t., "HelloWorld.txt")
Sending Files from Ajax Callbacks
The sendFile() method cannot be used to send a file from an Ajax Callback in a component. Instead, use a5Helper_generateFileDownloadJS(). For example:
function genExcelFile as c (e as p) dim cn as SQL::Connection dim sql as C = "SELECT * FROM Customers" dim filename as c = context.request.GetRequestTempFileName(".xlsx") dim js as c = "" ' Open connection to Northwind database cn.open("::Name::AADemo-Northwind") if (cn.toExcel(sql, filename, "Customers")) then js = a5Helper_generateFileDownloadJS(e.tmpl.alias,filename,"Northwind_Customers.xlsx") else dim cr as SQL::CallResult = cn.CallResult trace.writeLn("An error occurred in genExcelFile(): " + cr.text) end if cn.close() return js end function
See a5Helper_generateFileDownloadJS() for more info.
Limitations
Cannot be used in Ajax Callbacks
See Also