Bug #13094 Updated: Upload very slow

From: Date: Sun, 28 Oct 2001 17:10:13 +0000
Subject: Bug #13094 Updated: Upload very slow
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-69194@lists.php.net to get a copy of this message
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

« previous php.dev (#69194) next »