webmcp

view framework/env/request/get_param.lua @ 342:061ee100f1c1

Bugfix: respect "index" argument to request.get_param{...} function; Allow access to metadata of POST fields in request.get_param{...}
author jbe
date Tue Mar 24 23:54:14 2015 +0100 (2015-03-24)
parents 264af2867720
children f60f5ee90efb
line source
1 --[[--
2 value = -- value of GET/POST parameter, or value list if multiple == true
3 request.get_param{
4 method = method, -- "GET", "POST", or nil to query both (POST has precedence)
5 name = name, -- field name
6 index = index, -- defaults to 1 to get first occurrence, only applicable if multiple == false
7 multiple = multiple, -- boolean to indicate whether to return a single value or a value list
8 meta = meta -- set to true to get metadata (table with "file_name" and "content_type")
9 }
11 Reads GET/POST parameters directly from the underlaying request.
13 --]]--
15 function request.get_param(args)
16 local param_list
17 if args.metadata then
18 if args.method == "GET" then
19 param_list = request._http_request.get_metadata_list[args.name]
20 elseif args.method == "POST" then
21 param_list = request._http_request.post_metadata_list[args.name]
22 elseif not args.method then
23 param_list = request._http_request.post_metadata_list[args.name]
24 if not param_list[args.index or 1] then
25 param_list = request._http_request.get_metadata_list[args.name]
26 end
27 end
28 else
29 if args.method == "GET" then
30 param_list = request._http_request.get_params_list[args.name]
31 elseif args.method == "POST" then
32 param_list = request._http_request.post_params_list[args.name]
33 elseif not args.method then
34 param_list = request._http_request.post_params_list[args.name]
35 if not param_list[args.index or 1] then
36 param_list = request._http_request.get_params_list[args.name]
37 end
38 end
39 end
40 if args.multiple then
41 return param_list
42 else
43 return param_list[args.index or 1]
44 end
45 end
47 --//--

Impressum / About Us