Author: raintang
Date: 2009-09-14 05:11:35 +0200 (Mon, 14 Sep 2009)
New Revision: 38577
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository.properties
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_nl.properties
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_zh.properties
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/AssetElementUtil.java
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/assetupload.jsp
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
Log:
CMSC-1518 Improved messages for asset upload problems
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository.properties
===================================================================
---
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository.properties
2009-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository.properties
2009-09-14 03:11:35 UTC (rev 38577)
@@ -425,7 +425,11 @@
assets.upload.submit=Upload
assets.upload.results=Uploaded assets
-assets.upload.error=Upload Failed. Possible reasons: <ol><li>the asset(s) are
too big (max 16MB), even though it is zipped in a ZIP-file that is smaller then
the limit.</li><li>the ZIP-file does not contain files.</li><li>the ZIP-file is
secured with a password.</li><li>the ZIP-file is damaged.</li><li>some files
already exist in the system.</li></ol>
+assets.upload.error.big=The asset you are trying to upload is too large. The
maximum allowed file size is {0} MB
+assets.upload.error.exsit=The asset you are trying to upload already exists in
the repository. You can find this file in the
+assets.upload.error.exsit.channel= {0}
+assets.upload.error.exsit.filename=The existing file is called: {0}
+assets.upload.error.multiple=Upload Failed. Possible reasons: <ol><li>the
asset(s) are too big (max 16MB), even though it is zipped in a ZIP-file that is
smaller then the limit.</li><li>the ZIP-file does not contain
files.</li><li>the ZIP-file is secured with a password.</li><li>the ZIP-file is
damaged.</li><li>some files already exist in the system.</li></ol>
asset.upload.explanation=Upload local files to this channel. Also ZIP files
are supported to upload multiple file uploads.
asset.title=Asset
@@ -497,7 +501,7 @@
asset.search.attachment = attachment
asset.search.image = image
-asset.upload.failed.results=Failed Attachments and Images:
-asset.upload.uploaded.results=Uploaded Attachments and Images:
+asset.upload.failed.results=Failed Attachments or Images:
+asset.upload.uploaded.results=Uploaded Attachments or Images:
asset.upload.size.zero=Empty file!
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_nl.properties
===================================================================
---
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_nl.properties
2009-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_nl.properties
2009-09-14 03:11:35 UTC (rev 38577)
@@ -423,7 +423,11 @@
assets.upload.submit=Upload
assets.upload.results=Ge-uploade assets
-assets.upload.error=Niet alles geupload. Mogelijke oorzaken:<ol><li>de
bijlage(s) kunnen te groot zijn (max 16MB), ook al is deze ingepakt in een
ZIP-bestand dat kleiner is.</li><li>het ZIP-bestand bevat geen
bijlagen</li><li>het ZIP-bestand is beveiligd met een wachtwoord</li><li>het
ZIP-bestand is beschadigd</li><li>bestanden staan al in het CMS.</li></ol>
+assets.upload.error.big=The asset you are trying to upload is too large. The
maximum allowed file size is {0} MB
+assets.upload.error.exsit=The asset you are trying to upload already exists in
the repository. You can find this file in the
+assets.upload.error.exsit.channel= {0}
+assets.upload.error.exsit.filename=The existing file is called: {0}
+assets.upload.error.multiple=Upload Failed. Possible reasons: <ol><li>the
asset(s) are too big (max 16MB), even though it is zipped in a ZIP-file that is
smaller then the limit.</li><li>the ZIP-file does not contain
files.</li><li>the ZIP-file is secured with a password.</li><li>the ZIP-file is
damaged.</li><li>some files already exist in the system.</li></ol>
asset.upload.explanation=Selecteer een lokaal asset bestand, of een
ZIP-bestand dat meerdere assets kan bevatten.
asset.title=Asset
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_zh.properties
===================================================================
---
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_zh.properties
2009-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/resources/cmsc-repository_zh.properties
2009-09-14 03:11:35 UTC (rev 38577)
@@ -427,7 +427,11 @@
assets.upload.submit=上传
assets.upload.results=上传资源
-assets.upload.error=上传失败.可能的失败原因:<ol><li>文件过大(默认 16MB),
即使是ZIP包中的文件也应小于该限制.</li><li>该zip文件被密码保护.</li><li>该zip文件没有包含资源文件.</li><li>该zip文件可能损坏.</li><li>某些上传文件已在系统中存在.</li></ol>
+assets.upload.error.big=您要上传的文件太大. 最大允许上传的文件大小为 {0} MB
+assets.upload.error.exsit=您要上传的文件文件已经在仓库中存在.你能在以下频道找到
+assets.upload.error.exsit.channel= <{0}>
+assets.upload.error.exsit.filename=已存在文件的文件名: {0}
+assets.upload.error.multiple=上传失败.可能的失败原因: <ol><li>文件过大(默认 16MB),
即使是ZIP包中的文件也应小于该限制.</li><li>该zip文件被密码保护.</li><li>该zip文件没有包含资源文件.</li><li>该zip文件可能损坏.</li><li>某些上传文件已在系统中存在.</li></ol>
asset.upload.explanation=选择一个本地的资源文件或者包含若干资源文件的zip文件
asset.title=资源
@@ -499,6 +503,6 @@
asset.search.attachment = 附件
asset.search.image = 图片
-asset.upload.failed.results=上传失败的附件和图片:
-asset.upload.uploaded.results=上传成功的附件和图片:
+asset.upload.failed.results=上传失败的附件或图片:
+asset.upload.uploaded.results=上传成功的附件或图片:
asset.upload.size.zero=空文件!
\ No newline at end of file
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/AssetElementUtil.java
===================================================================
---
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/AssetElementUtil.java
2009-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/AssetElementUtil.java
2009-09-14 03:11:35 UTC (rev 38577)
@@ -337,6 +337,16 @@
* @return
*/
public static boolean isNewFile(FormFile file, NodeManager manager) {
+ NodeList assets = getAssetNode(file, manager);
+ return (assets.size() == 0);
+ }
+
+ /**
+ * @param file
+ * @param manager
+ * @return
+ */
+ private static NodeList getAssetNode(FormFile file, NodeManager manager) {
ChecksumFactory checksumFactory = new ChecksumFactory();
ByteToCharTransformer transformer = (ByteToCharTransformer)
checksumFactory.createTransformer(checksumFactory
.createParameters());
@@ -352,9 +362,23 @@
NodeQuery query = manager.createQuery();
SearchUtil.addEqualConstraint(query, manager.getField("checksum"),
checkSum);
NodeList assets = query.getList();
- return (assets.size() == 0);
+ return assets;
}
+ public static String getPathForAsset(FormFile file, NodeManager manager) {
+ NodeList assets = getAssetNode(file, manager);
+ Node assetNode = assets.getNode(0);
+ NodeList channelNodes = assetNode.getRelatedNodes("contentchannel",
"creationrel", "destination");
+ Node channelNode = channelNodes.getNode(0);
+ return RepositoryUtil.getPathToRootString(channelNode);
+ }
+
+ public static String getTitleFromExsitAsset(FormFile file, NodeManager
manager){
+ NodeList assets = getAssetNode(file, manager);
+ Node assetNode = assets.getNode(0);
+ return assetNode.getStringValue("title");
+ }
+
/**
*
* @param nodes
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-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/AssetUploadAction.java
2009-09-14 03:11:35 UTC (rev 38577)
@@ -15,6 +15,7 @@
import org.mmbase.bridge.NodeManager;
import com.finalist.cmsc.repository.AssetElementUtil;
+import com.finalist.cmsc.repository.RepositoryUtil;
import com.finalist.cmsc.struts.MMBaseAction;
import com.finalist.util.http.BulkUploadUtil;
@@ -28,14 +29,20 @@
String parentchannel = assetUploadForm.getParentchannel();
FormFile file = assetUploadForm.getFile();
+ String big = "";
+ String exsit = "";
+ String exsitChannel = "";
+ String exsitChannelId = "";
+ String exsitAssetTitle = "";
+ String isZip = "";
List<String> notUploadedFiles = new ArrayList<String>();
List<String> uploadedFiles = new ArrayList<String>();
- if (isValidFile(file)) {
+ if (notEmptyFile(file)) {
String assetType =
AssetElementUtil.judgeAssetType(file.getFileName());
NodeManager manager = cloud.getNodeManager(assetType);
-
- if (AssetElementUtil.isNewFile(file, manager)) {
+ if (BulkUploadUtil.isZipFile(file.getContentType(),
file.getFileName())) {
+ isZip = "isZip";
List<Integer> nodes = BulkUploadUtil.store(cloud, manager,
parentchannel, file, notUploadedFiles,
uploadedFiles);
// to archive the upload asset
@@ -43,7 +50,25 @@
AssetElementUtil.addRelationsForNodes(nodes, cloud);
}
} else {
- notUploadedFiles.add(file.getFileName());
+ if (BulkUploadUtil.maxFileSizeBiggerThan(file.getFileSize())) {
+ if (AssetElementUtil.isNewFile(file, manager)) {
+ List<Integer> nodes = BulkUploadUtil.store(cloud, manager,
parentchannel, file, notUploadedFiles,
+ uploadedFiles);
+ // to archive the upload asset
+ if (nodes != null) {
+ AssetElementUtil.addRelationsForNodes(nodes, cloud);
+ }
+ } else {
+ exsit = "exsit";
+ exsitChannel = AssetElementUtil.getPathForAsset(file,
manager);
+ exsitChannelId = RepositoryUtil.getChannelFromPath(cloud,
exsitChannel).getStringValue("number");
+ exsitAssetTitle =
AssetElementUtil.getTitleFromExsitAsset(file, manager);
+ notUploadedFiles.add(file.getFileName());
+ }
+ } else {
+ big = "big";
+ notUploadedFiles.add(file.getFileName());
+ }
}
}
addToSession(request, "notUploadedFiles", notUploadedFiles);
@@ -51,15 +76,15 @@
addToSession(request, "uploadingDone", "yes");
String url = mapping.findForward(SUCCESS).getPath() +
"?type=asset&direction=down" + "&parentchannel="
- + parentchannel + "&failed=" + notUploadedFiles.size() +
"&uploaded=" + uploadedFiles.size();
+ + parentchannel + "&failed=" + notUploadedFiles.size() +
"&uploaded=" + uploadedFiles.size() + "&isZip="
+ + isZip + "&big=" + big + "&exsit=" + exsit + "&exsitChannel=" +
exsitChannel + "&exsitChannelId="
+ + exsitChannelId + "&exsitAssetTitle=" + exsitAssetTitle +
"&maxAllowFileSize=" + BulkUploadUtil.getMaxAllowFileSize()/(1024*1024);
return new ActionForward(url, true);
}
- private boolean isValidFile(FormFile file) {
- return (BulkUploadUtil.maxFileSizeBiggerThan(file.getFileSize()) ||
BulkUploadUtil.isZipFile(file
- .getContentType(), file.getFileName()))
- && file.getFileSize() != 0 &&
StringUtils.isNotEmpty(file.getFileName());
+ private boolean notEmptyFile(FormFile file) {
+ return (file.getFileSize() != 0 &&
StringUtils.isNotEmpty(file.getFileName()));
}
private void addToSession(HttpServletRequest request, String name, Object
value) {
Modified:
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/assetupload.jsp
===================================================================
---
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/assetupload.jsp
2009-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/assetupload.jsp
2009-09-14 03:11:35 UTC (rev 38577)
@@ -28,21 +28,30 @@
<div>
<c:if test="${uploadingDone eq 'yes'}">
<c:if test="${param.failed ne '0'}" >
- <span style="color:#cc0000"><fmt:message
key="assets.upload.error"/></span>
+ <c:if test="${param.isZip eq 'isZip'}">
+ <span style="color:#cc0000"><fmt:message
key="assets.upload.error.multiple"/></span>
<fmt:message key="asset.upload.failed.results"/> ${param.failed}
<br/>
<c:forEach var="fileName" items="${notUploadedFiles}"
varStatus="fileAmount">
${fileName}
</c:forEach>
- <c:remove var="notUploadedFiles" scope="session"/>
- <br/><br/>
- </c:if>
- <c:if test="${param.uploaded ne '0'}" >
- <fmt:message key="asset.upload.uploaded.results"/> ${param.uploaded}
- <br/>
- <c:forEach var="fileName" items="${uploadedFiles}"
varStatus="fileAmount" >
- ${fileName}
+ </c:if>
+ <c:if test="${param.isZip ne 'isZip'}">
+ <fmt:message key="asset.upload.failed.results"/>
+ <c:forEach var="fileName" items="${notUploadedFiles}"
varStatus="fileAmount">
+ ${fileName}<br/>
</c:forEach>
+ <c:if test="${param.big eq 'big'}">
+ <span style="color:#cc0000"><fmt:message
key="assets.upload.error.big"><fmt:param>${param.maxAllowFileSize}</fmt:param></fmt:message></span>
+ </c:if>
+ <c:if test="${param.exsit eq 'exsit'}">
+ <span style="color:#cc0000"><fmt:message
key="assets.upload.error.exsit"/></span><br/>
+ <a
href="../repository/Asset.do?type=asset&parentchannel=${param.exsitChannelId}&direction=down">
+ ${param.exsitChannel}
+ </a>
+ <fmt:message
key="assets.upload.error.exsit.filename"><fmt:param>${param.exsitAssetTitle}</fmt:param></fmt:message>
+ </c:if>
+ </c:if>
<c:remove var="notUploadedFiles" scope="session"/>
</c:if>
</c:if>
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-09-14 03:10:44 UTC (rev 38576)
+++
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/util/http/BulkUploadUtil.java
2009-09-14 03:11:35 UTC (rev 38577)
@@ -364,6 +364,10 @@
}
public static boolean maxFileSizeBiggerThan(long fileSize) {
+ return (fileSize <= getMaxAllowFileSize());
+ }
+
+ public static int getMaxAllowFileSize() {
int maxFileSize = MAXSIZE;
if (PropertiesUtil.getProperty(UPLOADED_FILE_MAX_SIZE) != null) {
try {
@@ -377,7 +381,7 @@
log.warn("System property '" + UPLOADED_FILE_MAX_SIZE + "' is not
set. Please add it (units = MB).");
}
}
- return (fileSize <= maxFileSize);
+ return maxFileSize;
}
public static void main(String[] args) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs