<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ page contentType="text/html; charset=UTF-8" language="java" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="org.apache.commons.io.*" %> <%@ page import="com.csc.library.utilities.UProfile" %> <%@ page import="com.csc.library.fileutils.*" %> <%@ page import="com.csc.library.upload.*" %> <%@ page import="com.csc.library.upload.utils.*" %> <%@ page import="com.csc.library.upload.UploadConfig" %> <%@ page import="com.csc.library.session.InitialEnvironment" %> <%@ page import="com.csc.library.download.FileDownloadUtils2" %> <jsp:useBean id="uploadbean" class="com.csc.library.upload.CscFileUpload" scope="request" /> <% String cancel = "", root = "", folder= "", fieldreturn = "", filter = "", uploadfield ; boolean blacklistenabled=false; int fileCount =1; long filesizemax=-1; uploadfield = request.getParameter("uploadfield"); fieldreturn = request.getParameter("fieldreturn"); //String configpath = application.getRealPath(application.getInitParameter("upload-config")); //System.out.println("upload config=" +configpath); try { UploadConfig uconfig = new UploadConfig( ); //uconfig.load(); uconfig.setUploadField( uploadfield ); root = uconfig.getRoot(); folder = uconfig.getFolder(); filter=uconfig.getFilter(); blacklistenabled = uconfig.isBlacklistenabled(); filesizemax = uconfig.getFileSizeMax(); fileCount = uconfig.getFileCount(); } catch (Exception e) { request.setAttribute("error", e.getMessage() ); } if(CscFileUpload.isMultipartFormData( request ) ) { try { uploadbean.setProgressListener(new FileUploadProgressListener(request, 30) ); uploadbean.setFileSizeMax(filesizemax); //uploadbean.setSizeMax(1048576); // 1MB uploadbean.process( request ); //HashMap parameter = uploadbean.getParameter(); HashMap files = uploadbean.getFiles(); String uploadpath; InitialEnvironment env = new InitialEnvironment("GLOBAL"); uploadpath = env.getValue( root +"-dir" ); if( folder != null && !("").equals(folder) ) { uploadpath = uploadpath +folder; } uploadbean.setUploadDirectory( uploadpath ); uploadbean.setFileFilter( filter ); uploadbean.setBlacklistEnabled( blacklistenabled ); //uploadbean.setBlacklistEnabled( true ); uploadbean.setFileRenamePolicy( new TimeStampFileRename() ); System.out.println("Process file upload "); if(FileUploadUtils.getUploadInfo(request).isCancel()) { request.setAttribute("cancel", "Upload cancel."); System.out.println("jsp-Cancel"); } else if( files != null && files.size()>0 ) { uploadbean.save(); request.setAttribute("success", "The file was uploaded successfully!"); System.out.println("jsp-success"); } else { request.setAttribute("error", "No file upload"); System.out.println("jsp-error : No file upload"); } } catch(Exception e) { request.setAttribute("error", e.getMessage()); System.out.println("jsp-error :" +e.getMessage()); } } UProfile uprofile = (UProfile)request.getSession().getAttribute("userprofile"); String lang= "tha"; if( uprofile!= null && uprofile.get("lang")!=null ) { lang = uprofile.get("lang"); } %> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="CSS/TISCO.css" /> <link rel="stylesheet" type="text/css" href="CSS/UPLOAD_UI.css" /> <script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/UploadMonitor.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/dwr/engine.js"></script> <script type="text/javascript" src="JS/JavaUtils.js"></script> <script type="text/javascript" src="JS/FilenameUtils.js"></script> <script type="text/javascript" src="JS/UPLOAD2.js"></script> <script type="text/javascript"> var fileFilter, restrict; var lang = "<%=lang%>"; function activeButton(obj, active){ } function cancelUpload(){ activeButton($("cancelButton"), false); if(submitted) { cancelProgress(); }else { closePage(); } } function closePage() { window.close(); } function reloadPage() { window.location.replace( window.location.href ); } function uploadReturn(){ with(document.cscform) { var fieldreturn = window.opener.document.getElementsByName(__fieldreturn.value)[0]; var cmd = window.opener.document.getElementsByName("__cmd")[0]; var cmdchild = window.opener.document.getElementsByName("__cmdchild")[0]; fieldreturn.value = __uploadreturn.value; cmd.value = 'refresh'; if(cmdchild != null && typeof(cmdchild) !="undefined" ) { cmdchild.value = 'upload'; } window.opener.document.cscform.submit(); } } function uploadInputChanged(obj){ numOfFileUploads=0; var _up = $("fileUploads"); var c = _up.getElementsByTagName("input"); for(var i=0; i<c.length; i++) { var a=c[i]; if(a.getAttribute("type")==="file" && a.value!==null &&a.value.length>0) { numOfFileUploads++; } } activeButton($("uploadButton"), (numOfFileUploads>0 && !submitted)); } function initialFileFilter() { with(document.cscform) { fileFilter = __filter.value.split(","); restrict = (__blacklistenabled.value=="true"); } } function fileIsAllow(filename) { var isMatch = false; for( var i=0; i<fileFilter.length; i++) { var isMatch = FilenameUtils.wildcardMatch( filename, fileFilter[i], false ); if( isMatch ){ break; } } if( restrict ) { return !isMatch; } return isMatch; } function resetFile() { $("cscform").reset(); uploadInputChanged(); } function chkFileUpload(e, obj) { var filename = obj.value; var fileExt = FilenameUtils.getExtension(filename); if( filename != "" ) { if( !fileIsAllow(filename) ) { alert( formatString(messages[lang]["upload-file-not-allow"], fileExt )); resetFile(obj); return false; } else { uploadInputChanged(obj); } } } /* // used input image and set on form submit = startProgress; function processUpload(){ with(document.cscform) { submit(); startProgress(); } } */ </script> <style type="text/css"> #mainMasterTable { background: #efefef; } #preUpload { /*padding-left: 30px;*/ } .subText2 { color: #000000; } .input-image { height: 23px; min-width: 73px; border: 0px solid none; } </style> </head> <body> <div id="wrapper"> <table align="center" cellpadding="0" cellspacing="0" id="mainMasterTable"> <tr> <td class="header">UPLOADFILE, <script type="text/javascript">document.write( messages[lang]["upload-page-title"] );</script> </td> </tr> <% if (request.getAttribute("cancel") != null) { %> <tr> <td valign="top"> <div class="globalContentSpacing"> <table border="0" cellpadding="0" cellspacing="0" class="maxsize"> <tr> <td width="48" height="48" rowspan="2"><span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/Symbols-Warning-48x48.gif" width="48" height="48" align="absmiddle" /></span></td> <td><h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-cancel-title"] );</script></span></h1></td> </tr> <tr> <td><div class="subText" id="pageSubText"></div></td> </tr> </table> <div id="postUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div class="message"><p><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p></div> </div> <div class="pageTitlePadding"></div> </div> </div> </td> </tr> <tr id="buttonBarRow"> <td height="40"> <div id="buttonCancel" class="buttonline" align="center"> <a href="javascript:;" onClick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a> <a href="javascript:;" onClick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a> </div> </td> </tr> <% } else if (request.getAttribute("error") != null) { %> <tr> <td valign="top"> <div class="globalContentSpacing"> <table border="0" cellpadding="0" cellspacing="0" class="maxsize"> <tr> <td width="48" height="48" rowspan="2"><span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/Symbols-Error-48x48.gif" width="48" height="48" align="absmiddle" /></span></td> <td><h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-error-title"] );</script></span></h1></td> </tr> <tr> <td><div class="subText" id="pageSubText"><script type="text/javascript">document.write( messages[lang]["upload-error-sub"] );</script></div></td> </tr> </table> <div id="postUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div class="message"><p><%=request.getAttribute("error")%></p></div> </div> <div class="pageTitlePadding"></div> </div> </div> </td> </tr> <tr id="buttonBarRow"> <td height="40"> <div id="buttonError" class="buttonline" align="center"> <a href="javascript:;" onClick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a> <a href="javascript:;" onClick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a></div> </td> </tr> <% } else if (request.getAttribute("success") != null) { %> <form name="cscform" id="cscform" method="post" action="?<%=request.getQueryString()%>"> <input type="hidden" name="__fieldreturn" value="<%=fieldreturn %>" /> <tr> <td valign="top"> <div class="globalContentSpacing"> <table border="0" cellpadding="0" cellspacing="0" class="maxsize"> <tr> <td width="48" height="48" rowspan="2"><span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/Symbols-Tips-48x48.gif" width="48" height="48" align="absmiddle" /></span></td> <td><h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-success-title"] );</script></span></h1></td> </tr> <tr> <td><div class="subText" id="pageSubText"><script type="text/javascript">document.write( messages[lang]["upload-success-sub"] );</script></div></td> </tr> </table> <div id="postUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div id="fileUploads"> <% ArrayList history = uploadbean.getHistory(); StringBuffer uploadReturn = new StringBuffer(); FileDownloadUtils2 utils = null; System.out.println(history.size()); if( history.size()==1) { UploadParameters up = (UploadParameters)history.get(0); uploadReturn.append(up.getFilename()); utils = new FileDownloadUtils2(uploadfield, up.getFilename()); %> <div class="listFiles"> <span class="attachIcon"><img src="IMAGES/UPLOAD/ICON/ATTACH-ICON.gif" /></span> <a href="<%=utils.getDownloadUrl()%>"><%=up.getOrgFilename()%></a> [<%=FileUtils.byteCountToDisplaySize(up.getFilesize())%>]</div> <% } else { for( int i=0; i<history.size(); i++) { UploadParameters up = (UploadParameters)history.get(i); uploadReturn.append(up.getFilename()).append(","); utils = new FileDownloadUtils2(uploadfield, up.getFilename()); %> <div class="listFiles"> <span class="attachIcon"><img src="IMAGES/UPLOAD/ICON/ATTACH-ICON.gif" /></span> <a href="<%=utils.getDownloadUrl()%>"><%=up.getOrgFilename()%></a> [<%=FileUtils.byteCountToDisplaySize(up.getFilesize())%>]</div> <% } } %><input type="hidden" id="__uploadreturn" name="__uploadreturn" value="<%=uploadReturn.toString() %>" /> </div> </div> <div class="pageTitlePadding"></div> </div> </div> <script type="text/javascript">uploadReturn();</script> </td> </tr> <tr id="buttonBarRow"> <td height="40"> <div id="buttonSuccess" class="buttonline" align="center"> <a href="javascript:;" onClick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a></div> </td> </tr> </form> <% } else {%> <% FileUploadUtils.removeUploadInfo(request); %> <form name="cscform" id="cscform" enctype="multipart/form-data" method="post" action="?<%=request.getQueryString()%>" onsubmit="return startProgress();" > <input type="hidden" name="__blacklistenabled" value="<%=blacklistenabled %>" /> <input type="hidden" name="__filter" value="<%=filter %>" /> <input type="hidden" name="__fieldreturn" value="<%=fieldreturn %>" /> <script type="text/javascript">initialFileFilter();</script> <tr> <td> <div class="globalContentSpacing"> <table border="0" cellpadding="0" cellspacing="0" class="maxsize"> <tr> <td width="48" height="48" rowspan="2"><span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/Earth-Upload-48x48.gif" width="48" height="48" align="absmiddle" /></span></td> <td><h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-title"] );</script></span></h1></td> </tr> <tr> <td><div class="subText" id="pageSubText"><script type="text/javascript">document.write( messages[lang]["upload-message"] );</script></div></td> </tr> </table> <div id="preUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div class="message"><script type="text/javascript">//document.write( messages[lang]["upload-message"] );</script></div> <div id="fileUploads"> <% for(int index=1; index<= fileCount; index++) {%> <input type="file" id="fileUpload<%=index %>" name="fileUpload<%=index %>" size="50" class="fileUploadBox" onchange="chkFileUpload(event, this);" onkeyup="chkFileUpload(event, this);" /> <%}%> </div> <div class="pageTitlePadding"></div> <div class="subText2"><% if(filesizemax>0) {%><script type="text/javascript">document.write( messages[lang]["upload-max-size"] );</script>: <span><%=FileUtils.byteCountToDisplaySize(filesizemax)%> <%}%></span></div> <div class="subText2"><script type="text/javascript">document.write( messages[lang]["extensions<% if(blacklistenabled){%>-not<%}%>-allow"] );</script>: <span><%=filter%></span></div> </div> <div class="pageTitlePadding"></div> </div> <div id="duringUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div id="progressBar"> <div id="progressBarText">Upload in progress: 0% </div> <div id="progressBarBox"> <div id="progressBarBoxContent" style="width:1px;"></div> </div> <div id="progressStatusText">Status : Upload start</div> </div> </div> <div class="pageTitlePadding"></div> </div> <div id="postUpload" class="displayVisible"> <div class="pageTitlePadding"></div> <div class="uploadContent"> <div class="message"><p><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p></div> </div> <div class="pageTitlePadding"></div> </div> <script type="text/javascript">setVisible($("duringUpload"), false);</script> <script type="text/javascript">setVisible($("postUpload"), false);</script> </div> </td> </tr> <tr id="buttonBarRow"> <td height="40"> <div id="buttonUpload" class="buttonline" align="center"> <!--a href="javascript:;" onClick="processUpload();"><img src="IMAGES/BUTTON/UPLOAD.gif" width="73" height="23" border="0"></a--> <input name="btnUpload" type="image" class="input-image" id="btnUpload" value="upload" src="IMAGES/BUTTON/UPLOAD.gif" border="0" /> <a href="javascript:;" onClick="cancelUpload();"><img src="IMAGES/BUTTON/CANCEL.gif" width="73" height="23" border="0"></a> </div> <div id="buttonCancel" class="buttonline" align="center"> <a href="javascript:;" onClick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a> <a href="javascript:;" onClick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a> </div> <script type="text/javascript">setVisible($("buttonCancel"), false);</script> </td> </tr> </form> <% } %> <tr> <td class="blankspace"></td> </tr> <tr> <td class="bottom"></td> </tr> </table> </div> </body> </html>