HttpWrite: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Reverted again: disregard last edit - it's not js)
No edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{HTTP function}}
{{HTTP function}}
This function adds text to the output of the current HTML file of the [[Resource_Web_Access|HTTP interface]].
This function adds text to the output of the current HTTP file of the [[Resource_Web_Access|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==
==Syntax==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool httpWrite ( string text )
bool httpWrite ( string data [, int length] )
</syntaxhighlight>
</syntaxhighlight>


===Shortcut syntax===
===Shortcut syntax===
The following shortcut syntax is also supported:
The following shortcut syntax is also supported (the space between the ''<*'' and the ''='' is optional):
<syntaxhighlight lang="lua">[html]
<syntaxhighlight lang="lua">[html]
<* = text *>
<* = text *>
Line 19: Line 19:


===Required Arguments===
===Required Arguments===
*'''text:''' the string of text to be added to the page's output.
*'''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===
Line 25: Line 28:


==Example==
==Example==
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.
'''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.
<syntaxhighlight lang="lua">[html]
<syntaxhighlight lang="lua">[html]
<html>
<html>
Line 39: Line 42:


The second httpWrite call writes the quote generated by the function to the HTML output.
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.
<syntaxhighlight lang="lua">
<*
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
*>
</syntaxhighlight>


==See Also==
==See Also==
{{HTTP functions}}
{{HTTP functions}}

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