Update of 
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http
In directory 
james.mmbase.org:/tmp/cvs-serv20957/utilities/src/java/com/finalist/util/http

Modified Files:
        BulkUploadUtil.java 
Log Message:
CMSC-681 Asset Maintenance change the max size of uploading file .broken images


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http
See also: http://www.mmbase.org/jira/browse/CMSC-681


Index: BulkUploadUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- BulkUploadUtil.java 18 Dec 2008 09:00:26 -0000      1.15
+++ BulkUploadUtil.java 23 Dec 2008 06:11:01 -0000      1.16
@@ -10,6 +10,7 @@
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -168,7 +169,19 @@
       List<Integer> nodes = null;
       try {
          if (isZipFile(file)) {
-            byte[] fileData = file.getFileData();
+
+            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+            InputStream in = file.getInputStream();
+            byte[] temp = new byte[1024];
+            int read;
+
+            while ((read = in.read(temp)) > -1) {
+               buffer.write(temp, 0, read);
+            }
+
+            byte[] fileData = buffer.toByteArray();
+
+            // byte[] fileData = file.getFileData();
             ByteArrayInputStream bis = new ByteArrayInputStream(fileData);
             InputStream is = new BufferedInputStream(bis);
             ZipInputStream zip = new ZipInputStream(is);
@@ -240,6 +253,7 @@
       ArrayList<Integer> nodes = new ArrayList<Integer>();
 
       try {
+         byte[] buffer = new byte[2048 * 1024];
          while ((entry = zip.getNextEntry()) != null) {
             if (entry.isDirectory()) {
                continue;
@@ -257,19 +271,23 @@
             }
             count++;
             long size = entry.getSize();
+
             if (size < 
Integer.parseInt(PropertiesUtil.getProperty("uploaded.file.max.size")) * 1024 * 
1024) {
                ChecksumFactory checksumFactory = new ChecksumFactory();
                ByteToCharTransformer transformer = (ByteToCharTransformer) 
checksumFactory
                      .createTransformer(checksumFactory.createParameters());
-               byte[] buffer = new byte[(int) size];
-               zip.read(buffer, 0, (int) size);
-               String checkSum = transformer.transform(buffer);
+               ByteArrayOutputStream fileData = new ByteArrayOutputStream();
+               int len = 0;
+               while ((len = zip.read(buffer)) > 0) {
+                  fileData.write(buffer, 0, len);
+               }
+               String checkSum = transformer.transform(fileData.toByteArray());
                NodeQuery query = manager.createQuery();
                SearchUtil.addEqualConstraint(query, 
manager.getField("checksum"), checkSum);
                NodeList assets = query.getList();
 
                boolean isNewFile = (assets.size() == 0);
-               InputStream is = new ByteArrayInputStream(buffer);
+               InputStream is = new 
ByteArrayInputStream(fileData.toByteArray());
                if (isNewFile) {
                   Node node = createNode(parentChannel, manager, 
entry.getName(), is, size);
                   if (node != null) {
@@ -280,7 +298,6 @@
             }
             zip.closeEntry();
          }
-
       } catch (IOException ex) {
          log.error("IOException--Failed to read uploaded zipfile, skipping 
it", ex);
       } catch (Exception e) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to