Hi Christoph. Thanks for the response,
I would appreciate if you send my the demo project. Best Regards. > On Aug 4, 2015, at 2:59 PM, CHRISTOPH WICK | i4innovation GmbH, Bonn > <[email protected]> wrote: > > Hi Miguel, > > AFAIK (and I even wrote a mail to Mike Shrag, who wrote this code) there is > no real good way to catch an ERXAttachmentExceedsLengthException. > > What I did was: > > 1. in your application class, override the "handleException" method and check > if anException isinstanceof ERXAttachmentExceedsLengthException or any other > kind of exception. > > If the anException is a ERXAttachmentExceedsLengthException, try to go back > to the page where you were coming from. In my example I stored the last page > with the ERAttachmentUpload in my session, so I can restore it (and set an > error message for the user): > > public WOResponse handleException(Exception anException, WOContext context) { > > if (anException instanceof ERXAttachmentExceedsLengthException) { > ERXComponent nextPage = ((Session) > context.session()).lastPageBeforeAttachmentExceedsLengthException(); > > if (nextPage instanceof Main) { > ((Main) > nextPage).setErrorMessageFromException("<b>ERROR: This attachment is too > big.</b> ..."); > } > return nextPage.generateResponse(); > } else { > OtherExceptionResponsePage nextPage = > (OtherExceptionResponsePage) > > pageWithName(de.i4innovation.app.components.OtherExceptionResponsePage.class); > nextPage.setTheException(anException); > return nextPage.generateResponse(); > } > } > > > 2. There is a Javascript/jQuery solution to check the file-name and file-size > BEFORE you actually upload the file to your server. > > It assumes your wo:ERAttachmentUpload has the id 'uploadButton'. The save > button has the id 'saveButton' and an initially not displayed div has the id > 'uploadMessage'. > > With jn("#uploadButton").change(function(evt) ... you bind a function to the > Upload button that is fired during the onChange event -> that means before > the file is actually uploaded. > > > It works like this: > > <p><wo:ERAttachmentUpload id="uploadButton" configurationName = > "Document.attachment" attachment = "$theDocument.erAttachment" editingContext > = "$session.defaultEditingContext" /> > <wo:submit id="saveButton" style="display: none;" value = "save" action > = "$saveAttachmentAction" /> > <div id="uploadMessage" style="border: 1px solid red; padding: 5px; > color: red; display: none;"></div> > > <wo:if condition = "$errorMessageFromException"> > <div style="border: 1px solid red; padding: 5px; color: > red;"><wo:string value = "$errorMessageFromException" escapeHTML = "$false" > /></div> > </wo:if> > </p> > <script> > /* extend js' string with an endsWith function */ > function endsWith(str, suffix) { > return str.indexOf(suffix, str.length - suffix.length) !== -1; > } > > /* define the max file size */ > var maxFileSize = 20971520; > > /* run jQuery in noConflict mode */ > var jn = jQuery.noConflict(); > > /* attach this function to the file-upload-button's onChange event */ > jn("#uploadButton").change(function(evt) { > if (window.File && window.FileReader && window.FileList && > window.Blob) { > // Great success! All the File APIs are supported. > var files = evt.target.files; // FileList object > // files is a FileList of File objects. List some > properties. > for (var i = 0, f; f = files[i]; i++) { > var msgDiv = > document.getElementById('uploadMessage'); > var msgButton = > document.getElementById('saveButton'); > if (f.size > maxFileSize) { > var fSize = f.size/1000000; > var msg = "<b>ERROR: This attachment is > too big.</b><br />Maximum file size is: <b>10MByte</b>, actual file size: > <b>"+fSize.toFixed(2)+" MByte</b>.<br>Please upload a smaller file!"; > msgDiv.style.display = "block"; > msgDiv.innerHTML = msg; > msgButton.style.display="none"; > } else { > if (!endsWith(f.name.toLowerCase(), > "zip")) { > var msg = "<b>ERROR: This file > is not a zip file.</b><br />Please choose a zip file."; > msgDiv.style.display = "block"; > msgDiv.innerHTML = msg; > msgButton.style.display="none"; > } else { > msgDiv.style.display = "none"; > msgButton.className= "btn > btn-success"; > msgButton.style.display = > "block"; > } > } > } // end for-loop > } else { > alert('CAVE: This browser doesn\'t support attachment > size validation!'); > > document.getElementById('saveButton').style.display="block"; > } > }); > </script> > </wo:form> > > If you like I would send you the demo project I've developed. It's only 27kb, > but I'm not sure to post it on the list here. > > > C.U.CW > -- > The three great virtues of a programmer are Laziness, Impatience and Hubris. > (Randal Schwartz) > >> On 31.07.2015, at 00:37, Miguel Angel Torres Avila <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi List, >> >> I am doing my first Project using ERAttachments, it is great by the way! >> >> But I am not sure how to catch an ERXAttachmentExceedsLengthException and I >> have searched without luck. >> >> Is there any documentation about it? >> >> Thanks in advance. >> >> >> >> _______________________________ >> Ing. Miguel Angel Torres Avila >> Director General >> Tel: +52 (33) 3367 1892 >> Cel: +521 (33) 3106 8758 >> E-mail: [email protected] >> www.toracom.net >> >> Antes de imprimir, piense en el Medio Ambiente. Before printing think about >> the Environment. Avant d'imprimer, pensez à l'Environnement >> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/cw%40i4innovation.de >> <https://lists.apple.com/mailman/options/webobjects-dev/cw%40i4innovation.de> >> >> This email sent to [email protected] <mailto:[email protected]> _______________________________ Ing. Miguel Angel Torres Avila Director General Tel: +52 (33) 3367 1892 Cel: +521 (33) 3106 8758 E-mail: [email protected] www.toracom.net Antes de imprimir, piense en el Medio Ambiente. Before printing think about the Environment. Avant d'imprimer, pensez à l'Environnement
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
