Author: raintang
Date: 2009-07-30 10:14:10 +0200 (Thu, 30 Jul 2009)
New Revision: 37349

Modified:
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
Log:
CMSC-1472  Improve bulk image and attachment upload to show failed files in 
branch1.6 and trunk

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
   2009-07-30 08:13:28 UTC (rev 37348)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
   2009-07-30 08:14:10 UTC (rev 37349)
@@ -36,7 +36,8 @@
       List<String> notUploadedFiles = new ArrayList<String>();
       List<String> uploadedFiles = new ArrayList<String>();
 
-      if (!BulkUploadUtil.maxFileSizeBiggerThan(fileSize)) {
+      if (!BulkUploadUtil.maxFileSizeBiggerThan(fileSize)
+            &&!BulkUploadUtil.isZipFile(file.getContentType(), 
file.getFileName())) {
          exceed = "yes";
          uploadingDone = "no";
       } else if (fileSize == 0) {

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
  2009-07-30 08:13:28 UTC (rev 37348)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
  2009-07-30 08:14:10 UTC (rev 37349)
@@ -48,7 +48,7 @@
 
    private static final Log log = LogFactory.getLog(BulkUploadUtil.class);
 
-   public static final int MAXSIZE = 256 * 1024 * 1024;
+   public static final int MAXSIZE = 16 * 1024 * 1024;
    
    public static final String UPLOADED_FILE_MAX_SIZE = 
"uploaded.file.max.size";
    
@@ -260,46 +260,48 @@
       try {
          byte[] buffer = new byte[2048 * 1024];
          while ((entry = zip.getNextEntry()) != null) {
-            if (entry.isDirectory()) {
-               continue;
-            }
-            if ("images".equals(manager.getName()) && 
!isImage(entry.getName())) {
-               if (log.isDebugEnabled()) {
-                  log.debug("Skipping " + entry.getName() + " because it is 
not an image");
+            long size = entry.getSize();
+            if (maxFileSizeBiggerThan(size)) {
+               if (entry.isDirectory()) {
+                  continue;
                }
-               continue;
-            }
-            if (isImage(entry.getName())) {
-               manager = cloud.getNodeManager("images");
-            } else {
-               manager = cloud.getNodeManager("attachments");
-            }
-            count++;
-            long size = entry.getSize();
-            ChecksumFactory checksumFactory = new ChecksumFactory();
-            ByteToCharTransformer transformer = (ByteToCharTransformer) 
checksumFactory
-                  .createTransformer(checksumFactory.createParameters());
-            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();
+               if ("images".equals(manager.getName()) && 
!isImage(entry.getName())) {
+                  if (log.isDebugEnabled()) {
+                     log.debug("Skipping " + entry.getName() + " because it is 
not an image");
+                  }
+                  continue;
+               }
+               if (isImage(entry.getName())) {
+                  manager = cloud.getNodeManager("images");
+               } else {
+                  manager = cloud.getNodeManager("attachments");
+               }
+               count++;
+               ChecksumFactory checksumFactory = new ChecksumFactory();
+               ByteToCharTransformer transformer = (ByteToCharTransformer) 
checksumFactory
+                     .createTransformer(checksumFactory.createParameters());
+               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(fileData.toByteArray());
-            if (isNewFile) {
-               Node node = createNode(parentChannel, manager, entry.getName(), 
is, size);
-               if (node != null) {
-                  nodes.add(node.getNumber());
-                  uploadedFiles.add(entry.getName());
+               boolean isNewFile = (assets.size() == 0);
+               InputStream is = new 
ByteArrayInputStream(fileData.toByteArray());
+               if (isNewFile) {
+                  Node node = createNode(parentChannel, manager, 
entry.getName(), is, size);
+                  if (node != null) {
+                     nodes.add(node.getNumber());
+                     uploadedFiles.add(entry.getName());
+                  }
+                  is.close();
+               } else {
+                  notUploadedFiles.add(entry.getName());
                }
-               is.close();
-            } else {
-               notUploadedFiles.add(entry.getName());
             }
             zip.closeEntry();
          }

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to