Validation Struts中的文件上传验证

Validation Struts中的文件上传验证,validation,file-upload,struts-1,apache-commons-fileupload,Validation,File Upload,Struts 1,Apache Commons Fileupload,这是我需要验证的上传页面。目前没有进行验证。我认为在Struts 2中表单验证是不同的。我是否可以遵循此链接并以类似的方式实现我的表单 <%@ page contentType="text/html;charset=UTF-8" language="java"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-bean.tld" pr

这是我需要验证的上传页面。目前没有进行验证。我认为在Struts 2中表单验证是不同的。我是否可以遵循此链接并以类似的方式实现我的表单

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%-- <%@ taglib prefix="s" uri="/struts-tags"%> --%>
<%@ page errorPage="error.jsp"%>

</style>
<script>
    var _validFileExtensions = [".xlsx", ".xls", ".xlt"]; 
    function Validate(oForm) {
        alert("alert message in upload form");
    if( document.getElementById("filename").files.length == 0 ){
        alert("inside if");
         document.getElementById("fileSelect").style.display=""; 
        return false;
    }
    else{
        alert("inside else");
        document.getElementById("fileSelect").style.display="none"; 

    }
    var arrInputs = oForm.getElementsByTagName("input");
    for (var i = 0; i < arrInputs.length; i++) {
        var oInput = arrInputs[i];
        if (oInput.type == "file") {
            var sFileName = oInput.value;
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFileExtensions.length; j++) {
                    var sCurExtension = _validFileExtensions[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }

                if (!blnValid) {
                    alert("not valid");
                    document.getElementById("fileFormat").style.display="";
                    return false;
                }
            }
        }
    }

    return true;
}  



</script>
<center> 
    <html:form action="/process.do?method=upload" method="POST" enctype="multipart/form-data" onsubmit="return Validate(this);">
        <table cellpadding='4' border='0' width="80%">
                <tr>
                    <td width="1%"></td>
                    <td colspan='4' align='center'>
                        <b>Upload VIP Orders Shipment Dates:</b>
                        <div style="margin: 20px 20px 20px 250px">


                         <strong><label>File :</label></strong>&nbsp; &nbsp; &nbsp; <html:file id="filename" property="uploadedFile"/><br/>
                        <input type="submit" value="Upload File" style="margin: 40px 0 0 160px"/><br /><br />
                        <div id="fileSelect" style="color:Red;display:none">No file selected for uploading.</div>
                        <div id="fileFormat" style="color:Red;display:none">Invalid File Format. Only .xlsx, .xls, and .xlt file format allowed.</div>

                        </div>
                    </td>
                </tr>
        </table>
    </html:form> 

var_validFileExtensions=[“.xlsx”、“.xls”、“.xlt”];
函数验证(oForm){
警报(“上传形式的警报消息”);
if(document.getElementById(“filename”).files.length==0){
警报(“内部如果”);
document.getElementById(“fileSelect”).style.display=“”;
返回false;
}
否则{
警惕(“其他内部”);
document.getElementById(“fileSelect”).style.display=“无”;
}
var arrInputs=oForm.getElementsByTagName(“输入”);
对于(var i=0;i0){
var blnValid=false;
对于(变量j=0;j<_validFileExtensions.length;j++){
var sCurExtension=_validfleextensions[j];
if(sFileName.substr(sFileName.length-sCurExtension.length,sCurExtension.length).toLowerCase()==sCurExtension.toLowerCase()){
blnValid=true;
打破
}
}
如果(!blnValid){
警报(“无效”);
document.getElementById(“文件格式”).style.display=“”;
返回false;
}
}
}
}
返回true;
}  
上传VIP订单发货日期:
文件:


没有选择要上载的文件。 无效的文件格式。仅允许.xlsx、.xls和.xlt文件格式。
我只想获取文件名。如果文件名为null,则显示错误消息

我希望验证在客户端本身进行,而不是请求到服务器端进行验证。以下是我要显示的两条消息: 没有选择要上载的文件------如果没有选择文件,请单击“提交”按钮。和 无效的文件格式。仅允许.xlsx、.xls和.xlt文件格式--- 当文件不是excel格式时,我找到了方法:

jsp页面:

我找到了方法:

jsp页面:


那么您使用的是哪种Struts?您发布的S1代码与S2的关系如何?我是Struts新手。在我的项目中,struts 1和struts 2都被使用。因此,您可以假设它的struts 1;)控制台中有哪些错误?首先,我想知道此代码是否正确:。我在javascript中使用这个id=“filename”,并试图检查文件是否被选中。但是控件没有到达警告消息:alert(“inside if”),那么您使用的是哪个Struts?您发布的S1代码与S2的关系如何?我是Struts新手。在我的项目中,struts 1和struts 2都被使用。因此,您可以假设它的struts 1;)控制台中有哪些错误?首先,我想知道此代码是否正确:。我在javascript中使用这个id=“filename”,并试图检查文件是否被选中。但控件未到达警报消息:警报(“内部如果”)
function performAction(obj){        
    var aForm = document.forms[0];  
    var formAction = aForm.action;
    formAction = formAction.substring(0,formAction.indexOf('?'));
    if(obj == 'LOADFILE'){          
    aForm.action = formAction+'?method=loadFile';
}

            if(obj == 'UPLOADFILE'){            
            aForm.action = formAction+'?method=upload';
            }

          aForm.submit();

}

</script>

<html:form action="/process.do?method=upload" method="post" enctype="multipart/form-data">
     <table>
     <tr>                                                               
        <b> Please download the template file by 
        <A href="#" onclick="return performAction('LOADFILE')"  >clicking here</A> 
        </b>

        <strong><label>File :</label></strong><html:file property="uploadedFile" /><br/>

        <INPUT TYPE="submit" value="Upload"  onclick="return performAction('UPLOADFILE')">

        </tr>
     </table>
</html:form> 
public class process  extends ActionForm {

    public ActionErrors validate(ActionMapping mapping,
                HttpServletRequest request) {

            ActionErrors errors = null;

            if ("upload".equals(request.getParameter(mapping.getParameter()))) {
                errors = new ActionErrors();
                if (uploadedFile == null || uploadedFile.getFileSize()==0 ) {
                    errors.add(" ", new ActionMessage("error.file.notselected"));

                }
                else{
                    if (!uploadedFile.getFileName().contains(".xls")
                            && !uploadedFile.getFileName().contains(".xlsx")) {
                        errors.add(" ", new ActionMessage("error.file.notxlsx"));
                    }
                }

            }

            return errors;
        }
}