Validation Struts中的文件上传验证
这是我需要验证的上传页面。目前没有进行验证。我认为在Struts 2中表单验证是不同的。我是否可以遵循此链接并以类似的方式实现我的表单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
<%@ 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> <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;
}
}