Brian wrote:
...
I'd also like to avoid the last resort which would be to run a long
process to process each file, save them to a temporary directory, and
then re-read them
(one after the other)
at the end
(and send them out)
a single output stream. This defeats
the purpose because I'd like to be able to start writing the output of
the first filtered file to the client as soon as it's processed.
Why is that "the last resort" ?
It seems to me to be the logical way of achieving what you want.
Anyway, when the user is posting the three files (as 3 "file" boxes in a form), this is
sent by the browser as one long stream (multi-part encoded, but still one long stream).
The server is receiving it as one long stream, parsing it, saving each of these files to a
temporary file on disk, and then handing you a filehandle to each one of them.
Both apreq and CGI will do that for you.
That code is already developed, debugged, optimised, and tested a million times.
Why make your life more complicated than it is, and risk making mistakes re-developing
your own version of it ?
In addition, you can't really start sending back the result to the client, before this
client has finished sending the whole form (including all the uploaded files). The client
will not even start to read the server response before then.