From: Richard H Lee on
p.general,

I have a form with 75 or so file input controls: <input type="file" ...

Usually when I submit the form, I only upload two or so files. So in the
post request, it sends the two files along with the other blank 73
fields. This has been working fine on my live and test servers so far.

However as of the past few days only the first 20 file fields are
recieved on the live server. I saw this by dumping the $_FILES array.
This does not happen on the test server. I can see all 75 file fields
been sent across in the POST header in wireshark, but but only the first
20 appear in the $_FILES array.

Has anyone come across this problem of the $_FILE array being truncated?
I don't recall changing anything on the live server.

Richard
From: Daniel Egeberg on
On Tue, Mar 16, 2010 at 15:19, Richard H Lee <richard(a)webdezign.co.uk> wrote:
> p.general,
>
> I have a form with 75 or so file input controls: <input type="file" ...
>
> Usually when I submit the form, I only upload two or so files. So in the
> post request, it sends the two files along with the other blank 73 fields.
> This has been working fine on my live and test servers so far.
>
> However as of the past few days only the first 20 file fields are recieved
> on the live server. I saw this by dumping the $_FILES array. This does not
> happen on the test server. I can see all 75 file fields been sent across in
> the POST header in wireshark, but but only the first 20 appear in the
> $_FILES array.
>
> Has anyone come across this problem of the $_FILE array being truncated? I
> don't recall changing anything on the live server.
>
> Richard

Check out max_file_uploads which was added in PHP 5.2.12 and defaults to 20.

--
Daniel Egeberg
From: Ashley Sheridan on
On Tue, 2010-03-16 at 18:25 +0100, Daniel Egeberg wrote:

> On Tue, Mar 16, 2010 at 15:19, Richard H Lee <richard(a)webdezign.co.uk> wrote:
> > p.general,
> >
> > I have a form with 75 or so file input controls: <input type="file" ...
> >
> > Usually when I submit the form, I only upload two or so files. So in the
> > post request, it sends the two files along with the other blank 73 fields.
> > This has been working fine on my live and test servers so far.
> >
> > However as of the past few days only the first 20 file fields are recieved
> > on the live server. I saw this by dumping the $_FILES array. This does not
> > happen on the test server. I can see all 75 file fields been sent across in
> > the POST header in wireshark, but but only the first 20 appear in the
> > $_FILES array.
> >
> > Has anyone come across this problem of the $_FILE array being truncated? I
> > don't recall changing anything on the live server.
> >
> > Richard
>
> Check out max_file_uploads which was added in PHP 5.2.12 and defaults to 20.
>
> --
> Daniel Egeberg
>


I really wouldn't rely on a form that contains more than 20 file upload
boxes though. If someone uploads some large files, they're stuck with an
extremely long wait which will slow down your server a bit as well if a
lot of people are using the same form at the same time.

Have you looked at using a multi-file upload element instead?

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: "Richard Lee" on
> Check out max_file_uploads which was added in PHP 5.2.12 and defaults
to
> 20.

Yes that was the problem, I set max_file_uploads higher and it works
now.

Thanks
From: Kim Madsen on
Ashley Sheridan wrote on 16/03/2010 18:28:

> I really wouldn't rely on a form that contains more than 20 file upload
> boxes though. If someone uploads some large files, they're stuck with an
> extremely long wait which will slow down your server a bit as well if a
> lot of people are using the same form at the same time.

True. Instead make the upload with AJAX, so the file starts uploading
when the field is changed (onChange()) or out of focus (is there such a
function? onUnFocus()? :-)). See gmail attachment for an example.

--
Kind regards
Kim Emax - masterminds.dk