RE: [PHP-DEV] Question on file upload
| From: | Bharat Nagwani | Date: | Tue, 02 Jun 2009 23:30:24 +0000 |
| Subject: | RE: [PHP-DEV] Question on file upload | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-44129@lists.php.net to get a copy of this message | ||
Yes I am looking to change the C implementation.
The problem is - the uploaded temp file is already created by httpd server even before it gets to
php.
In php I just need to find this temp file, trim the headers and avoid
file copy by php being done by following code in rfc1867.c
while (!cancel_upload && (blen = multipart_buffer_read(mbuff, buff, sizeof(buff), &end
TSRMLS_CC)))
{
if (php_rfc1867_callback != NULL) {
multipart_event_file_data event_file_data;
event_file_data.post_bytes_processed = SG(read_post_bytes);
event_file_data.offset = offset;
event_file_data.data = buff;
event_file_data.length = blen;
event_file_data.newlength = &blen;
if (php_rfc1867_callback(MULTIPART_EVENT_FILE_DATA,
&event_file_data, &event_extra_data TSRMLS_CC) == FAILURE) {
...
While following multipart_buffer_read I cannot find the place where it is reading the temp file to
fill this buffer.
Thanks
-----Original Message-----
From: Matt Wilson [mailto:shadda@gmail.com]
Sent: Tuesday, June 02, 2009 4:22 PM
To: Bharat Nagwani
Cc: internals@lists.php.net
Subject: Re: [PHP-DEV] Question on file upload
I'm not sure if you're looking to change the C implementation or not,
but you could always bypass the internal processing of the file. Set
post_max_size to 0 and parse the HTTP_RAW_POST_DATA manually.
On Jun 2, 2009, at 3:55 PM, Bharat Nagwani wrote:
> Hello,
>
> I want to change the way file upload processing is done in php. We
> have a http server (appweb)
> that puts the uploaded file to a temp directory. This file has
> headers at the beginning and end.
>
> I am looking at code rfc1867.c. This code takes the temp file and
> seems to extract the real file.
> I want to change it so instead of entire file, I can run a system
> awk command to trim the
> header lines to get the actual file.
>
> Has anyone done something similar? I cant find the place where the
> actual file is being read?
> Can someone please point to that.
>
> This is php 5.2 on bsd.
>
> Thanks
>