HttpWrite: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool httpWrite ( string data, | bool httpWrite ( string data [, int length] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 10:27, 14 July 2009
This function adds text to the output of the current HTTP file of the HTTP interface. The function can only be used on parsed (i.e not marked as raw) HTTP pages. httpWrite can support outputing binary data, if you specify the length of the data you are outtputing. If you do this, you should ensure you set an accurate content-type using httpSetResponseHeader otherwise it may be displayed inconsistently by browsers.
Syntax
bool httpWrite ( string data [, int length] )
Shortcut syntax
The following shortcut syntax is also supported (the space between the <* and the = is optional):
[html] <* = text *>
which is equivalent to:
[html] <* httpWrite(text) *>
Required Arguments
- data: the data to be added to the page's output.
Optional Arguments
- length: The length of the data being written. Generally only should be required for writing binary data.
Returns
Returns true if the text was added to the output buffer successfully, false otherwise.
Example
Example 1: This sample resource page will output a random quote from a player using a function previously exported to http from a Lua script in the resource.
[html] <html> <head> <* = call ( getResourceFromName("ajax"), "start", getResourceName(getThisResource()) ) *> </head> <body> <b>Random quote:</b> <* httpWrite( call ( getThisResource(), "getRandomQuote" ) ) *> </body> </html>
The first httpWrite call (in shortcut syntax) adds the links to scripts generated by the ajax resource, enabling use of the getRandomQuote function.
The second httpWrite call writes the quote generated by the function to the HTML output.
Example 2: Using httpWrite to return a file read in with fileRead. This is useful as the internal server doesn't not support subdirectories reliably so you can create a page to return files to you.
<* local file = fileOpen ( "icons/icon.png" ) if file then while not fileIsEOF(file) do buffer = fileRead(file, 500) httpWrite(buffer, buffer:len()) end fileClose(file) httpSetResponseHeader ( "content-type", "image/png") else *> Could not read file <* end *>
See Also
These functions can only be used from within lua blocks in HTML pages hosted by the server
- httpClear
- httpRequestLogin
- httpSetResponseCode
- httpSetResponseCookie
- httpSetResponseHeader
- httpWrite