Difference between revisions of "Ns getform"

From AOLserver Wiki
Jump to navigation Jump to search
Line 16: Line 16:
 
: Use this for multipart/form-data POST requests.  It will append the ns_conn form ns_set with additional keys - two for each uploaded file. These are ''fileUploadFormFieldName''.'''content-type''', which is the content type as specified by the client, followed by ''fileUploadFormFieldName''.'''tmpfile''', which is the location of a temporary file containing the transmitted file content. The temporary file name is generated by [[ns_tmpnam]] and a script registered by [[ns_atclose]] deletes the temporary file when the connection is closed.
 
: Use this for multipart/form-data POST requests.  It will append the ns_conn form ns_set with additional keys - two for each uploaded file. These are ''fileUploadFormFieldName''.'''content-type''', which is the content type as specified by the client, followed by ''fileUploadFormFieldName''.'''tmpfile''', which is the location of a temporary file containing the transmitted file content. The temporary file name is generated by [[ns_tmpnam]] and a script registered by [[ns_atclose]] deletes the temporary file when the connection is closed.
  
: Here is one way to prevent the processing of large files:
+
'''NOTES'''
 +
Here is one way to prevent the processing of large files:
  
 
   set content_length [ns_set iget [ns_conn headers] content-length]
 
   set content_length [ns_set iget [ns_conn headers] content-length]

Revision as of 01:33, 11 October 2009

Man page: http://aolserver.com/docs/tcl/ns_getform.html


NAME

ns_getform - Return the connection formdata ns_set, copying multipart form data into temp files if necessary.

SYNOPSIS

ns_getform ?charset?

DESCRIPTION

This is a Tcl wrapper to ns_conn form that first calls ns_urlcharset if charset is specified. In addition, if the request contains multipart form submission, it copies each uploaded file content into a temp file and sets up data to allow access to these temp files using ns_getformfile. Otherwise, it generally behaves the same as ns_conn form, so see its documentation for more details.
Use this for multipart/form-data POST requests. It will append the ns_conn form ns_set with additional keys - two for each uploaded file. These are fileUploadFormFieldName.content-type, which is the content type as specified by the client, followed by fileUploadFormFieldName.tmpfile, which is the location of a temporary file containing the transmitted file content. The temporary file name is generated by ns_tmpnam and a script registered by ns_atclose deletes the temporary file when the connection is closed.

NOTES Here is one way to prevent the processing of large files:

 set content_length [ns_set iget [ns_conn headers] content-length]
 if {$content_length eq "" || $content_length > 1000000} {
   # return some error message about file too big
 }

What happens if the client sends a false Content-Length: header?

Is there a way to limit the size of an incoming POST before the files are saved to the file system?

See Annotated AOLserver Configuration Reference

 ns_param   maxinput        [expr 5 * 1024 * 1024]  ;# Maximum file size for uploads in bytes, default is 1MB, new in AOLserver 4.01

SEE ALSO

ns_getformfile, ns_queryget, ns_set

-