ID: 13094
Updated by: jeroen
Reported By: [EMAIL PROTECTED]
Old Status: Assigned
Status: Closed
Bug Type: Performance problem
Operating System: Windows 2000
PHP Version: 4.0.6
Assigned To: sniper
New Comment:

Fixed in CVS by Jani, will be fixed in 4.2.0

Previous Comments:
------------------------------------------------------------------------

[2001-09-02 16:52:23] [EMAIL PROTECTED]

Work in progress...

------------------------------------------------------------------------

[2001-09-02 11:57:36] [EMAIL PROTECTED]

This has nothing to do with 2291.

The problem probably is that PHP takes all HTTP-post data into it's memory, and only 
after the complete header (WITH all files) are in-memory, php_mime_split is called to 
get the files out of the request and save them to disk.

So if you need to recieve file-uploads of 100MB or something, PHP needs 100MB of 
RAM... otherwise it will swap and thus be terribly slow (especially on Windows)

A real solution would be to rewrite php_mime_split to run on-the-fly... which at first 
glance isn't terribly hard.

------------------------------------------------------------------------

[2001-09-02 11:17:11] [EMAIL PROTECTED]

Seems duplicate of 2291, but that one should be fixed in 4.0.6

------------------------------------------------------------------------

[2001-09-02 07:34:53] [EMAIL PROTECTED]

?php
if(is_uploaded_file($userfile))
 {
        $FileNameAdd = $FileName;                                               
//Prefix for filename using uniqid();
        $FileNameAddDB = $DBFileName;                           //Including prefix 
used for database
        $filename = $HTTP_POST_FILES['userfile']['name'];       //Filename as selected 
by user
        $FileExt = substr(strrchr($filename, "."), 1);
        if(array_search($FileExt, $Extensions) == FALSE)
        {
?>
                <font class="warning">Not allowed to upload this file.</font>
<?php
                exit();
        }
        $DBFileSize = $HTTP_POST_FILES['userfile']['size'];
        $DBFileName = $FileNameAddDB.$filename;                 
        move_uploaded_file($userfile, $Mapping . $FileNameAdd.$filename);
?>

Didn't compile anything just use the compiled version as download from website.

When I upload a file bigger than 10 MB, it takes a very long time (if it uploads) I 
adjusted all the needed variables in php.ini. 
I'm using it for files (>150MB) over a Lan network.
I've tried a ASP uploader and it does the same file in less then three minutes. PHP 
was working for 30 minutes and still wasn't done. 
I think this is a bug in the code.

Marcel van Leeuwen
Netherlands

------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=13094&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to