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