Re: [RFC][Under discussion] RFC1867 for non-POST HTTP verbs
| From: | Ilija Tovilo | Date: | Sat, 07 Oct 2023 12:06:57 +0000 |
| Subject: | Re: [RFC][Under discussion] RFC1867 for non-POST HTTP verbs | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-121261@lists.php.net to get a copy of this message | ||
Hi Tim
> On 10/6/23 15:44, Ilija Tovilo wrote:
> > https://wiki.php.net/rfc/rfc1867-non-post
> >
>
> Regarding the cleanup of the files, perhaps the files could be read into
> a
php://temp stream
> (https://www.php.net/manual/en/wrappers.php.php#wrappers.php.memory)?
>
> While this would cause the function to be incompatible with $_FILES, I
> think it would make for a much nicer API and it would also automatically
> solve the cleanup problem.
php://temp would solve auto-cleanup of files nicely. However, whether
they are easier to work with will depend on what you're doing with the
file. The most common action after a file uploads is arguably to move
it to a permanent location using move_uploaded_file(). With a stream
the obvious way to achieve the same is stream_copy_to_stream().
However, as the stream already has a file backing (if big enough, at
least) this copy is unnecessary. Please correct me if there's
something I have missed.
I also would really like to avoid subtle differences between the
automatically and manually invoked files. Given that the overwhelming
majority will not use PHP with something like RoadRunner, I think it
makes more sense to add the special casing (i.e. deleting the files
manually) in the uncommon case, than for everybody else to adapt their
code for the uncommon case.
Ilija