[wp-trac] [WordPress Trac] #38560: media_handle_upload() can't handle arrayed $_FILES

WordPress Trac noreply at wordpress.org
Sat Oct 29 14:00:51 UTC 2016


#38560: media_handle_upload() can't handle arrayed $_FILES
--------------------------+------------------------------
 Reporter:  kontur        |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Media         |     Version:
 Severity:  normal        |  Resolution:
 Keywords:                |     Focuses:
--------------------------+------------------------------
Changes (by swissspidy):

 * version:  4.6.1 =>


Old description:

> When you have form code that references [several file
> uploads](http://php.net/manual/en/features.file-upload.multiple.php) as
> array, the media_handle_upload() function fails to handle this.
> For example this:
>
> {{{
> <input type="file" name="documents[]">
> <input type="file" name="documents[]">
> }}}
>
> Will result in a $_FILES array that's creates subarrays shaped like so:
>
> {{{
> $_FILES['userfile']['name'][0]
> $_FILES['userfile']['name'][1]
> $_FILES['userfile']['tmp_name'][0]
> $_FILES['userfile']['tmp_name'][1]
> $_FILES['userfile']['size'][0]
> $_FILES['userfile']['size'][1]
> $_FILES['userfile']['type'][0]
> $_FILES['userfile']['type'][1]
> }}}
>

> This will fail when passed to media_handle_upload, since [the
> implementation does not handle this array
> structure](https://core.trac.wordpress.org/browser/tags/4.5.3/src/wp-
> admin/includes/media.php#L281) nor is this documented.

New description:

 When you have form code that references [several file
 uploads](http://php.net/manual/en/features.file-upload.multiple.php) as
 array, the media_handle_upload() function fails to handle this.
 For example this:

 {{{
 <input type="file" name="documents[]">
 <input type="file" name="documents[]">
 }}}

 Will result in a $_FILES array that's creates subarrays shaped like so:

 {{{
 $_FILES['userfile']['name'][0]
 $_FILES['userfile']['name'][1]
 $_FILES['userfile']['tmp_name'][0]
 $_FILES['userfile']['tmp_name'][1]
 $_FILES['userfile']['size'][0]
 $_FILES['userfile']['size'][1]
 $_FILES['userfile']['type'][0]
 $_FILES['userfile']['type'][1]
 }}}


 This will fail when passed to media_handle_upload, since
 [https://core.trac.wordpress.org/browser/tags/4.5.3/src/wp-
 admin/includes/media.php#L281 the implementation does not handle this
 array structure] nor is this documented.

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/38560#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list