控制FileUpload的问题?
我的后台添加文章页里,我加了一个上传图片项目,控件是FileUpload ,当点击提交图片按钮(ImageButton)时,验证上传控件里的是图片格式,才继续执行,否则,弹出提示框,停止执行。请问大家,该怎么做啊,我是个新手,大家帮帮忙。 --------------------编程问答-------------------- 使用‘OnClientClick’调用JS验证,
建议使用‘onpropertychange’事件验证,在选中文件后直接验证是否符合要求。
<input type="file" name="addFile" id="AddFile" class="addfile" onpropertychange="IsFileFlag(this);" runat="server" /> --------------------编程问答--------------------
string savePath = @"../images/uploadfiles/";--------------------编程问答-------------------- picupload.SaveAs(savePath);
string savePath1 = @"../images/uploadfiles/smallPic/";
string fileName = Server.HtmlEncode(this.getimagepath());
string extension = System.IO.Path.GetExtension(fileName);
string ImageName = null;
if (fileName != "nopic.gif")
{
if ((extension == ".jpg") | (extension == ".gif"))
{
ImageName = DateTime.Now.ToString("yyyyMMddhhmmssfff") + extension;
savePath += ImageName;
savePath1 += ImageName;
savePath = Server.MapPath(savePath);
savePath1 = Server.MapPath(savePath1);
}
else
{
Response.Write("<script>alert('文件上传格式错误');history.back(1);</script>");
Response.End();
}
}
http://blog.csdn.net/greatverve/archive/2008/12/17/3539127.aspx
http://download.csdn.net/source/413279 --------------------编程问答-------------------- 用js验证
js获得文件扩展名函数
function getExtJs(filename)
{
var i = filename.lastIndexOf(".");
if(i<0){ alert("文件格式不正确");return false; }
return filename.substring(i+1);
}
function check()
{
var o = document.getElementById("UploadFile的id");
if(o == null || o.value == "")
{
alert("没有选择文件");return false;
}
var ext = getExtJs(o.value);
if(ext != "你允许的扩展名"){ alert("不允许上传该类型文件");return false; }
}
在你的
ImageButton加 OnClientClik="return check()" --------------------编程问答-------------------- <?xml version="1.0" encoding="gb2312" ?>
<Application>
<FileUpLoad>
<Format>.jpg|.gif|.png|.bmp</Format>
</FileUpLoad>
</Application> --------------------编程问答-------------------- cs代码:判断是否是jpg文档:
if (FileUpload1.HasFile)
{
if (string.Compare(System.IO.Path.GetExtension(FileUpload1.FileName), ".jpg", true) != 0)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script language=javascript>alert('请提交jpg!!')</script>");
}
else
.....
}
else
......... --------------------编程问答-------------------- 貌似上面各位已经给出了服务器端的验证的方法,我再给你个客户端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>
正解 --------------------编程问答-------------------- Mark
补充:.NET技术 , ASP.NET