Re: [webmin-devel] Webmin 1.320 file upload improvements question

"Jamie Cameron" <[email protected]>
Newsgroups gmane.comp.web.webmin.devel
Message-ID <[email protected]>
On 31/Jan/2007 14:33 Chris Mckenzie wrote ..

Hi all.

Long time webmin tinkerer, short time webamin-devel list troller.

I had a question regarding the the improved file upload module and progress bar window.

* Improved handling of large file uploads so that they are no longer read into memory by Webmin webserver. Also added a progress bar window for tracking uploads.

Firstly, my tests have shown that when attempting a file upload to miniserv, the main miniserv process maynot gobble up memory for the download but the spawned CGI that's being posted to does.

Yes, that is still unfortunately true - when using the default ReadParseMime function for reading uploaded files, the entire content is read into memory.

I wrote a quick test to see if the fix would be suitable for a module I'm looking at doing. (large file upload) It starts with a simple form:

<form method="POST" action="/test/handleUpload.cgi" enctype="multipart/form-data">

<input type="file" name="file" id="file" size="20">

</form>

My handleUpload.cgi is pretty straightforward too:

&ReadParseMime();

...

my $fh = new IO::File ">$write_file";

if(defined($fh)) {

binmode $fh;

print $fh $in{'file'};

}

$fh->close();

...

The only way to avoid comsuming memory like this would be to write your own replacement for ReadParseMime to write data directly to a file as it is read by the CGI. I haven't done this yet, but it would be at least theoretically possible now that the miniserv.pl process doesn't read the whole upload into memory too :-)

- Jamie

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

-
Forwarded by the Webmin development list at [email protected]
To remove yourself from this list, go to
http://lists.sourceforge.net/lists/listinfo/webadmin-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.