Folks, Not reflected in my original question was the fact that I write
the upload file (via jsp) to the local file system, and we have
customized Tomcat startup scripts. Within /etc/init.d/tomcat startup
script /etc/sysconf/tomcat is sourced which sets ulimit 256000. If the
hard ulimit is unlimited, the tomcat process will not crash as before.
Thanks,OSC

  ----- Original Message -----
  From: "Oscar Usifer"
  To: commons-user@jakarta.apache.org
  Subject: [FileUpload] Large File Upload crashes Tomcat (after 262MB
  transferred)
  Date: Thu, 12 Jul 2007 19:52:32 -0500


  Folks,

  I'm using commons-fileupload-1.2.jar in a Tomcat (v.4.0) JSP to
  upload a file. After attempting to upload a file size 650 MB (iso
  image), the transfer halts around 262MB. I tried changing the
  Tomcat -Xmx and -Xms startup flags, but this didn't not make a
  difference. Calling FileUpload.getSizeMax() returns '-1', so
  there's no limitation there. The page I've written is similar
  to what follows here (taken from
  http://wiki.apache.org/jakarta-commons/Net/FrequentlyAskedQuestions
  and http://jakarta.apache.org/commons/fileupload/streaming.html).
  What ends up happening is that the Tomcat java process terminates
  without reporting a backtrace, and the log file does not reflect
  what happened. Any ideas?

  Thanks,

  OSCAR


  // Create a new file upload handler
  ServletFileUpload upload = new ServletFileUpload();

  // Parse the request
  FileItemIterator iter = upload.getItemIterator(request);
  while (iter.hasNext()) {
  FileItemStream item = iter.next();
  String name = item.getFieldName();
  InputStream stream = item.openStream();
  if (item.isFormField()) {
  System.out.println("Form field " + name + " with value "
  + Streams.asString(stream) + " detected.");
  } else {
  System.out.println("File field " + name + " with file name "
  + item.getName() + " detected.");

  FTPClient client = new FTPClient();
  client.addProtocolCommandListener(new PrintCommandListener(new
  PrintWriter(System.out)));

  client.connect("127.0.0.1");
  client.login("rory", "rory");

  for (FTPFile file : client.listFiles()) {
  System.out.printf("%s %s [%d bytes]\n"
  ,(file.isDirectory() ? "[D]" : " "),
  file.getName(), file.getSize());
  }

  client.enterLocalPassiveMode();
  client.setFileType(FTPClient.BINARY_FILE_TYPE);

  // Upload a file
  InputStream fis = stream;
  OutputStream os = client.storeFileStream("myfile");

  byte buf[] = new byte[8192];
  int bytesRead = fis.read(buf);
  while (bytesRead != -1) {
  os.write(buf, 0, bytesRead);
  bytesRead = fis.read(buf);
  }
  fis.close();
  os.close();
  client.completePendingCommand();

  client.logout();
  client.disconnect();

-- 
We've Got Your Name at http://www.mail.com!
Get a FREE E-mail Account Today - Choose From 100+ Domains

Reply via email to