请问这段客户端验证上传的javascript脚本错误在哪里?

百一不只 2015-05-22 07:33:34
想做一个客户端验证上传代码示例,功能为只允许上传'png'、‘bmp'、’gif'、'jpg'四种类型的文件,若上传其他类型文件,则提示文件不合法!
具体代码如下。但是这个代码运行后,不管上传什么类型文件都可以上传,应该是for验证哪块有错误,但是小弟实在找不出问题在哪里,麻烦大神帮忙看看!非常感谢!


<html>
<head>
<title>图片上传</title>
<script type="type/javascript">
function checkFile()
{
var flag=false;
var str=document.getElementById("file").value;
str=str.substring(str.lastIndexof('.')+1);
var arr=new Array('png','bmp','gif','jpg');
for(var i=0;i<arr.length;i++);
{
if(str==arr[i])
{
flag=true;
}
else
{
flag=false;
alert=('文件不合法!');
}
return flag;
}
}
</script>
</head>

<body>
<form action="img/upload.php" method="post" onsubmit="checkFile" enctype="multipart/form-data">
<input type="file" name="file" id="file"/><br/>
<input type="submit" value="提交" name="submit"/>
</form>
</body>
</html>


上面这个是验证脚本,对上传的文件扩展名进行验证。

<?php
if(isset($_POST["submit"]))
{
$name=$_FILES['file']['name']; //接收文件名
$name=md5(date('Y-m-d h:m:s')).strrchr($name,"."); //文件重命名操作,保留原有扩展名
$size=$_FILES['file']['size']; //接收文件大小
$tmp=$_FILES['file']['tmp_name']; //临时路径
move_uploaded_file($tmp,$name); //移动临时文件到当前文件目录
echo "文件上传成功!path:".$name;
}
?>

上面这个用来接收文件,在接收文件后,将文件重命名,然后放到本目录下。
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwsss 2015-05-25
  • 打赏
  • 举报
回复
<html>
<head>
<title>图片上传</title>
<script>
    function checkFile()
    {
        var flag=false;
        var str=document.getElementById("file").value;
        str=str.substring(str.lastIndexOf('.')+1);
        var arr=new Array('png','bmp','gif','jpg');
        for(var i=0;i<arr.length;i++)
        {
            if(str==arr[i])
            {
                flag=true;
							break;
            }
        }
			if(!flag)alert('文件不合法!');
			return flag;
    }
</script>
</head>

<body>
    <form action="img/upload.php" method="post" onsubmit="return checkFile()" enctype="multipart/form-data">
        <input type="file" name="file" id="file"/><br/>
        <input type="submit" value="提交" name="submit" />
    </form>
</body>
</html>
百一不只 2015-05-22
  • 打赏
  • 举报
回复
此处上传 一个txt文件

TM的竟然提示上传成功了......

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧