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