[转]客户端JS验证fileupload控件,设置只允许特定的文件类型

时间:2022-08-28 08:44:04

服务器端的验证的方法很容易写,我再给出个客户端JS验证的方法。两法并用更好,服务器端验证可以解决客户端禁用JS导致用户绕过验证的问题;客户端JS验证可以减少用户操作的步骤(在提交到服务器之前就已经告诉用户错误信息了),从而获得更好的用户体验。
下面的代码你可以修改成ajax的,当然,你得自己去写后台方法和发送和处理XMLHTTP请求。不过一般用下面的JS和上面各位的服务器验证就已经足够了。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Articles_Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" language="javascript">

function CheckFileType()
{
var objButton=document.getElementById("Button1");//上传按钮
var objFileUpload=document.getElementById('FileUpload1');//FileUpload
var objMSG=document.getElementById('msg');//显示提示信息用的DIV
var FileName=new String(objFileUpload.value);//文件名
var extension=new String (FileName.substring(FileName.lastIndexOf(".")+1,FileName.length));//文件扩展名

if(extension=="jpg"||extension=="JPG")//你可以添加扩展名
{
objButton.disabled=false;//启用上传按钮
objMSG.innerHTML="";
}
else
{
objButton.disabled=true;//禁用上传按钮
objMSG.innerHTML="请选择正确的文件文件";
}
}


</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="msg"></div>
<asp:Button ID="Button1" runat="server" Text="上传" Enabled="False" />
<br />
<asp:FileUpload ID="FileUpload1" runat="server" onChange="javascript:CheckFileType();" />

</div>
</form>
</body>
</html>