日期:2014-05-17  浏览次数:20784 次

表单提交上传文件前的验证
上传文件已经ok,ajax对文件上传前的验证,验证的内容为:
1.首先判断文件是否为空,为空则提醒选择文件;
2.如果不为空得到文件名,通过ajax传到后台,根据文件名来查询文件,判断文件是否存在,*如果存在就提示是否要替换此文件,**点击是就重新上传,将原文件覆盖;**点击取消则不会覆盖原文件。
需求就是上面所述,提示消息是否替换的时候点击确定,就是执行不了覆盖,如果上传的文件数据库里没有就可以正常上传,前太代码如下,那位高手指点一下,在线等...谢谢了

jquery代码:
//文件上传前的验证
function check(){
var file=document.getElementById("myFile").value;
var wid=document.getElementById("workflowId").value;
var arr=new Array();
arr=file.split('\\');
var name=arr[arr.length-1];
if(file==""){
top.Dialog.alert("请选择需要上传的文件!");
return false;
}else{
var okk=false;
$.ajax({
type:"post",
async:false,
url:"yanZhengWenDang.action?dt="+new Date().getTime(),
data:{"wjm":name,"wid":wid},
success:function(data){
if(data.ok){
//判断是否要替换
top.Dialog.confirm("该文件名已经存在,是否要替换?",function funcOK(){
okk=true;},function funcCal(){okk=false;});
}else{
okk=true;
}
},
dataType:"json"
});
return okk;
}
}



表单上传文件的前台代码:
<!-- 表单上传文件! -->
<s:if test="ok">
    <div id="uf" style="text-align: center;">
    <form action="uploadworkflowfile.action"enctype="multipart/form-data" method="post" onsubmit="return check()">
    <font style="font-weight: bold;">&nbsp;&nbsp;&nbsp;文件上传:&nbsp;&nbsp;&nbsp;</font>
    <input type="hidden" id="workflowId" value="${workflow.id }" name="workflowId"/>
    <input type="file" id="myFile" name="myFile"/>
    <input type="submit" value="上传"/>
    </form>
   
 </div>
 </s:if>

JavaScript Ajax jQuery

------解决方案--------------------
引用:
问题我知道了,那我应该怎么解决呢?

额,还没明白?你用我上面给你写的代码就OK

直接处理onsubmit会有点麻烦,你就把提交按钮type设置为button添加个onclick事件在那里校验
然后在校验里再去用ajax去后台校验是否已有同名文件,根据结果返回给reback方法
在reback方法里判断返回的结果,如果有同名文件就弹出提示框让用户选择覆盖与否,如果没有就直接提交表单
我在3L给你写的够详细了,你仔细看看就明白了