Browse Source
- Implemented FR #50692, not uploaded files don't count towards
- Implemented FR #50692, not uploaded files don't count towards
max_file_uploads limit. - As a side improvement, temporary files are not opened for empty uploads and, in debug mode, 0-length uploads.pull/12/head
4 changed files with 233 additions and 18 deletions
-
3NEWS
-
45main/rfc1867.c
-
101tests/basic/rfc1867_max_file_uploads_empty_files.phpt
-
102tests/basic/rfc1867_max_file_uploads_empty_files_debug.phpt
@ -0,0 +1,101 @@ |
|||
--TEST-- |
|||
rfc1867 max_file_uploads - empty files shouldn't count (non-debug version) |
|||
--SKIPIF-- |
|||
<?php if(function_exists("leak")) print "skip only for non-debug builds"; ?> |
|||
--INI-- |
|||
file_uploads=1 |
|||
error_reporting=E_ALL |
|||
max_file_uploads=2 |
|||
--POST_RAW-- |
|||
Content-Type: multipart/form-data; boundary=---------------------------20896060251896012921717172737 |
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file2"; filename="" |
|||
Content-Type: text/plain-file |
|||
|
|||
|
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file3"; filename="" |
|||
Content-Type: text/plain-file |
|||
|
|||
33 |
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file4"; filename="file4.txt" |
|||
Content-Type: text/plain-file |
|||
|
|||
|
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file1"; filename="file1.txt" |
|||
Content-Type: text/plain-file |
|||
|
|||
1 |
|||
-----------------------------20896060251896012921717172737-- |
|||
--FILE-- |
|||
<?php |
|||
var_dump($_FILES); |
|||
var_dump($_POST); |
|||
if (is_uploaded_file($_FILES["file1"]["tmp_name"])) { |
|||
var_dump(file_get_contents($_FILES["file1"]["tmp_name"])); |
|||
} |
|||
if (is_uploaded_file($_FILES["file4"]["tmp_name"])) { |
|||
var_dump(file_get_contents($_FILES["file4"]["tmp_name"])); |
|||
} |
|||
?> |
|||
--EXPECTF-- |
|||
array(4) { |
|||
["file2"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(0) "" |
|||
["type"]=> |
|||
string(0) "" |
|||
["tmp_name"]=> |
|||
string(0) "" |
|||
["error"]=> |
|||
int(4) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file3"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(0) "" |
|||
["type"]=> |
|||
string(0) "" |
|||
["tmp_name"]=> |
|||
string(0) "" |
|||
["error"]=> |
|||
int(4) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file4"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(9) "file4.txt" |
|||
["type"]=> |
|||
string(15) "text/plain-file" |
|||
["tmp_name"]=> |
|||
string(%d) "%s" |
|||
["error"]=> |
|||
int(0) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file1"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(9) "file1.txt" |
|||
["type"]=> |
|||
string(15) "text/plain-file" |
|||
["tmp_name"]=> |
|||
string(%d) "%s" |
|||
["error"]=> |
|||
int(0) |
|||
["size"]=> |
|||
int(1) |
|||
} |
|||
} |
|||
array(0) { |
|||
} |
|||
string(1) "1" |
|||
string(0) "" |
|||
@ -0,0 +1,102 @@ |
|||
--TEST-- |
|||
rfc1867 max_file_uploads - empty files shouldn't count (debug version) |
|||
--SKIPIF-- |
|||
<?php if(!function_exists("leak")) print "skip only for debug builds"; ?> |
|||
--INI-- |
|||
file_uploads=1 |
|||
error_reporting=E_ALL |
|||
max_file_uploads=1 |
|||
--POST_RAW-- |
|||
Content-Type: multipart/form-data; boundary=---------------------------20896060251896012921717172737 |
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file2"; filename="" |
|||
Content-Type: text/plain-file |
|||
|
|||
|
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file3"; filename="" |
|||
Content-Type: text/plain-file |
|||
|
|||
33 |
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file4"; filename="file4.txt" |
|||
Content-Type: text/plain-file |
|||
|
|||
|
|||
-----------------------------20896060251896012921717172737 |
|||
Content-Disposition: form-data; name="file1"; filename="file1.txt" |
|||
Content-Type: text/plain-file |
|||
|
|||
1 |
|||
-----------------------------20896060251896012921717172737-- |
|||
--FILE-- |
|||
<?php |
|||
var_dump($_FILES); |
|||
var_dump($_POST); |
|||
if (is_uploaded_file($_FILES["file1"]["tmp_name"])) { |
|||
var_dump(file_get_contents($_FILES["file1"]["tmp_name"])); |
|||
} |
|||
?> |
|||
--EXPECTF-- |
|||
Notice: No file uploaded in Unknown on line 0 |
|||
|
|||
Notice: No file uploaded in Unknown on line 0 |
|||
|
|||
Warning: Uploaded file size 0 - file [file4=file4.txt] not saved in Unknown on line 0 |
|||
array(4) { |
|||
["file2"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(0) "" |
|||
["type"]=> |
|||
string(0) "" |
|||
["tmp_name"]=> |
|||
string(0) "" |
|||
["error"]=> |
|||
int(4) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file3"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(0) "" |
|||
["type"]=> |
|||
string(0) "" |
|||
["tmp_name"]=> |
|||
string(0) "" |
|||
["error"]=> |
|||
int(4) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file4"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(9) "file4.txt" |
|||
["type"]=> |
|||
string(0) "" |
|||
["tmp_name"]=> |
|||
string(0) "" |
|||
["error"]=> |
|||
int(5) |
|||
["size"]=> |
|||
int(0) |
|||
} |
|||
["file1"]=> |
|||
array(5) { |
|||
["name"]=> |
|||
string(9) "file1.txt" |
|||
["type"]=> |
|||
string(15) "text/plain-file" |
|||
["tmp_name"]=> |
|||
string(%d) "%s" |
|||
["error"]=> |
|||
int(0) |
|||
["size"]=> |
|||
int(1) |
|||
} |
|||
} |
|||
array(0) { |
|||
} |
|||
string(1) "1" |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue