Re: Bug #13094 Updated: Upload very slow
| From: | Jani Taskinen | Date: | Sun, 28 Oct 2001 17:13:27 +0000 |
| Subject: | Re: Bug #13094 Updated: Upload very slow | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69195@lists.php.net to get a copy of this message | ||
Please leave alone these. I was going to close them myself as
I want to add some information to them too..
--Jani
On 28 Oct 2001 jeroen@php.net wrote:
>ID: 13094
>Updated by: jeroen
>Reported By: mvl@lionsolutions.nl
>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] jeroen@php.net
>
>Work in progress...
>
>------------------------------------------------------------------------
>
>[2001-09-02 11:57:36] jeroen@php.net
>
>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] jeroen@php.net
>
>Seems duplicate of 2291, but that one should be fixed in 4.0.6
>
>------------------------------------------------------------------------
>
>[2001-09-02 07:34:53] mvl@lionsolutions.nl
>
>?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
>
>
>