Discussion:
How to capture uploaded file data
Mariusz Drozdowski
2013-09-27 04:56:18 UTC
Permalink
Hi all php experts,

I would like to ask you all a question, I hope this is the right place
to ask it.

I'm writing a PHP extension now in c/c++. User uploads a file (could be POST
or PUT method, but I can limit it to POST only). I need to capture the
file data while being
uploaded, without writing it to disk on the server. I need to process
the data and (maybe,
depending on a situation) send it somewhere else or save it to disk.
Of course I know, that I can process the file
after it has been uploaded (saved on disk on the server), but I would
like to avoid it.
I also need to do something opposite: I need to generate a file "on the
fly" and send it
to the user. All metadata of the generated file is known beforehand
(e.g. size, name).

I've been searching around for some time now and I could not find
anything even close to the solution.
Is there any example(s) or existing PHP extension that do(es) something
like this (at least something simmilar) ?
If you could give me any pointers that would be awesome.

Thanks for your help in advance.

Mariusz
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Bastien
2013-09-28 12:26:46 UTC
Permalink
Thanks,

Bastien
Post by Mariusz Drozdowski
Hi all php experts,
I would like to ask you all a question, I hope this is the right place
to ask it.
I'm writing a PHP extension now in c/c++. User uploads a file (could be POST
or PUT method, but I can limit it to POST only). I need to capture the
file data while being
uploaded, without writing it to disk on the server. I need to process
the data and (maybe,
depending on a situation) send it somewhere else or save it to disk.
Of course I know, that I can process the file
after it has been uploaded (saved on disk on the server), but I would
like to avoid it.
I also need to do something opposite: I need to generate a file "on the
fly" and send it
to the user. All metadata of the generated file is known beforehand
(e.g. size, name).
I've been searching around for some time now and I could not find
anything even close to the solution.
Is there any example(s) or existing PHP extension that do(es) something
like this (at least something simmilar) ?
If you could give me any pointers that would be awesome.
Thanks for your help
The question I have is why? Should your upload fail for any reason you've got a half processed file that is non-recoverable. No do-overs. If you stick to the standard processes with out the extension,

Upload
Save somewhere (or leave in temp upload folder)
Process
Send result back to user
Unlink file

Generating the file and sending it to the user is also pretty standard

Create your dataset
Send appropriate headers
Send data
Close connection

For this, there usually isn't a need to save the file. You may run into issues streaming the data to certain browsers.

Also one of the main downsides to your upload is high load situations or large file situations (where file size exceeds php's upload limit).

My personal preference is to save that file to disk so that if needed I can work with it later ( if say the server load is high) and email the results to the user.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Continue reading on narkive:
Loading...