[webmin-devel] Webmin 1.320 file upload improvements question

Chris Mckenzie <[email protected]>
Newsgroups gmane.comp.web.webmin.devel
Message-ID <04398A2C9F306C4690265C144089972D27E321@sottexch1.corp.ad.entrust.com>
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.

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();
...

This is the approach taken by Tim Neimueller
(http://www.niemueller.de/webmin/modules/upload/). I assumed the fix was
either transparent to the cgi module using this accepted method, or there's
some newer/different usage I need to use.

I really hope the fix isn't the applet solution found in the new File
module. That's cheating in my book. :-) Though I understand it helped
facilitate the progress bar capability.

If I can properly arrange for the file upload to not consume tons of memory,
I plan to design a progress bar with an IFRAME form post and Ajax. (which
I'll share if I ever get it working)


Here's my top output for a 1.2gig upload. The 1st process is miniserv, while
the 2nd is my handleUpload.cgi. Note the large SIZE and %MEM.

 17:20:26  up 6 days,  7:56,  3 users,  load average: 2.42, 1.97, 1.29
2 processes: 1 sleeping, 1 running, 0 zombie, 0 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total    0.3%    0.0%   15.4%  34.7%     1.3%   48.0%    0.0%
Mem:   382644k av,  378308k used,    4336k free,       0k shrd,    3304k
buff
                    280172k actv,   51884k in_d,    4868k in_c
Swap: 10241396k av, 1494184k used, 8747212k free                   40336k
cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
22768 root      15   0  5056 1020   652 D     0.0  0.2   0:00   0
miniserv.pl
25332 root      16   0 1181M 254M   420 R    10.9 68.0   8:32   0
miniserv.pl


Any ideas?

Thanks!

- Chris

-------------------------------------------------------------------------
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.