Multiform parsing
Fixed on parsing array Change-Id: If9cbc8561dabaf4836fe5bb0ea7b9449269e7269 Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
parent
7ee6777f60
commit
2dd658c778
|
@ -108,7 +108,10 @@ final class ParseMultiPartFormDataInputStream
|
|||
$block = $this->decide($value);
|
||||
|
||||
foreach ($block['parameters'] as $key => $val ) {
|
||||
$results['parameters'][$key] = $val;
|
||||
if(key_exists($key, $results['parameters']) && is_array($results['parameters'][$key] ) && is_array($val))
|
||||
$results['parameters'][$key] = array_merge($results['parameters'][$key], $val);
|
||||
else
|
||||
$results['parameters'][$key] = $val;
|
||||
}
|
||||
|
||||
foreach ( $block['files'] as $key => $val ) {
|
||||
|
@ -245,6 +248,8 @@ final class ParseMultiPartFormDataInputStream
|
|||
$val = intval($val);
|
||||
if(!empty($val) && is_double($val))
|
||||
$val = doubleval($val);
|
||||
if(!empty($val) && is_numeric($val))
|
||||
$val = $val + 0;
|
||||
if (preg_match('/^(.*)\[\]$/i', $match[1], $tmp)) {
|
||||
$data[$tmp[1]][] = $val;
|
||||
} else {
|
||||
|
|
|
@ -81,4 +81,52 @@ DATA;
|
|||
$this->assertTrue(count($res['parameters']) > 0);
|
||||
|
||||
}
|
||||
|
||||
public function testArray(){
|
||||
$input = <<<DATA
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="name"
|
||||
|
||||
ncode
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="label"
|
||||
|
||||
Code
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="description"
|
||||
|
||||
ndndnllll
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="file_preview"
|
||||
|
||||
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="summit_id"
|
||||
|
||||
6
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="event_types[]"
|
||||
56
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="event_types[]"
|
||||
59
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk
|
||||
Content-Disposition: form-data; name="event_types[]"
|
||||
58
|
||||
------WebKitFormBoundaryt61VjbNKJb4PiKXk--
|
||||
|
||||
|
||||
DATA;
|
||||
|
||||
$_SERVER['CONTENT_TYPE'] = 'multipart/form-data; boundary=----WebKitFormBoundaryt61VjbNKJb4PiKXk';
|
||||
$parser = new \utils\ParseMultiPartFormDataInputStream($input);
|
||||
|
||||
$res = $parser->getInput();
|
||||
|
||||
$this->assertTrue(isset($res['parameters']));
|
||||
$parameters = $res['parameters'];
|
||||
$this->assertTrue(count($parameters) > 0);
|
||||
$this->assertTrue(isset($parameters['event_types']));
|
||||
$this->assertTrue(count($parameters['event_types']) == 3);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue