首页 web前端 js教程 javascrip客户端验证文件大小及文件类型并重置上传_表单特效

javascrip客户端验证文件大小及文件类型并重置上传_表单特效

May 16, 2016 pm 06:12 PM
客户端验证 文件大小 文件类型

下面是我写的一个通用的javascrip脚本,虽然调用时需要赋的参数比较多,但都是实际需要中真正需要使用到的。各位可以参考,并改成自己需要的脚本。

复制代码 代码如下:

/*****获取文件信息 edit by zhaogw 参考by misssionOtherAttEdit.jsp*****/
/*file:input type="file"的对象,一般用this。
vType:一个对象名,用于记录文件的文件类型信息。一般为input对象。
DivType:一个Div对象的名称。把其innerHTML内容用于显示文件的类型信息。
vFile:一个对象名,用于记录文件的文件名信息。一般为input对象。
DivFile:一个Div对象的名称。把其innerHTML内容用于显示文件的文件名信息。
vSize,DivSize同上面类似,只是记录文件的大小信息。
mMaxSize:以m为单位计算其允许上传的最大文件大小。
allowType:只接受的文件类型
*/
function getFileInfo(file,mMaxSize,allowType,vFile,DivFile,vType,DivType,vSize,DivSize){
var filePath = file.value;//文件路径
var fileName;//文件名
var fileType;//文件类型
var tmpObj;//临时对象
var notAllowType=new Array("exe","bat","asp","jsp","js","dll");
var mHTML=document.getElementById(file.name+'Td').innerHTML;
/*
var mHTML="";
*/
// alert(mHTML);
//get file name
if(filePath != null && filePath != ''){
var pass=true;
//文件类型
fileType = filePath.substring(filePath.lastIndexOf('.') + 1,filePath.length);
if (fileType!=null&&fileType!='')
{
for (var i in notAllowType){
if (fileType.toLowerCase()==notAllowType[i]){
pass=false;
break;}
}
}
//允许的类型,空的话就不设置允许类型
var match=false;
if (allowType!=null&&allowType!=''){
var allowList=allowType.split('|');
for (var j in allowList){
if (fileType.toLowerCase()==allowList[j].toLowerCase()){
match=true;
break;}
}
} else {match=true;}
if (pass&&match)
{
fileName = filePath.substring(filePath.lastIndexOf('\\') + 1,filePath.length);
tmpObj=document.getElementById(vType);
if (tmpObj!=null)
tmpObj.value = fileType;
tmpObj=document.getElementById(DivType);
if (tmpObj!=null)
tmpObj.innerHTML = fileType;
tmpObj=document.getElementById(vFile);
if (tmpObj!=null)
tmpObj.value = fileName;
tmpObj=document.getElementById(DivFile);
if (tmpObj!=null)
tmpObj.innerHTML = fileName;
try{
var fso,f,s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(file.value);
if(f.Size > mMaxSize*1048576){
alert("文件大小不能超过"+mMaxSize+"M");
document.getElementById(file.name+'Td').innerHTML = mHTML;
tmpObj=document.getElementById(vType);
if (tmpObj!=null)
tmpObj.value = '';
tmpObj=document.getElementById(DivType);
if (tmpObj!=null)
tmpObj.innerHTML = '';
tmpObj=document.getElementById(vFile);
if (tmpObj!=null)
tmpObj.value = '';
tmpObj=document.getElementById(DivFile);
if (tmpObj!=null)
tmpObj.innerHTML = '';
tmpObj=document.getElementById(vSize);
if (tmpObj!=null)
tmpObj.value = '';
tmpObj=document.getElementById(DivSize);
if (tmpObj!=null)
tmpObj.innerHTML = '';
return;
}
else
{
tmpObj=document.getElementById(vSize);
if (tmpObj!=null)
tmpObj.value = f.Size;
tmpObj=document.getElementById(DivSize);
if (tmpObj!=null)
tmpObj.innerHTML = f.Size+" byte(字节)";
var imgType=new Array("jpg","jpeg","gif","bmp");
var isImg=false;
//文件类型
if (fileType!=null&&fileType!='')
{
for (var k in imgType){
if (fileType.toLowerCase()==imgType[k]){
isImg=true;
break;}
}
}
var tmpObj=document.getElementById("imgView");
if (isImg&&tmpObj){
var y = document.getElementById(file.name+"img");
if(y){
y.src = "file://localhost/" + file.value;
}else{
var img=document.createElement("img");
img.setAttribute("src","file://localhost/"+file.value);
img.setAttribute("width","120");
img.setAttribute("height","90");
img.setAttribute("id",file.name+"img");
tmpObj.appendChild(img);
}
}}
}catch(e){
//ignore
}
}
else if (!pass) {alert("不允许上传文件类型为:"+fileType);document.getElementById(file.name+'Td').innerHTML = mHTML;}
else if (!match) {alert("只允许上传文件类型为:"+allowType);document.getElementById(file.name+'Td').innerHTML = mHTML;}
}
}

调用方法的代码:
复制代码 代码如下:







需要显示当前上传图片的需要加入以下代码:

 


简单说明下脚本的相关约定:

1:如必须使用对象来(或者别的有innerHTML属性的对象来包含着input的type="file"的对象,并且名称必须是input的name属性+"Td"为后缀)
2:imgView写死了,由于不想再加入更多的参数,因此,这里就固定这个了。大家也可以把名称作参数传递进去。看各位的方便了。
3:所有参数都可以为''但第一个参数基本上是this。脚本会自动去判断相关的参数的。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

et是什么文件类型「必看:et的文件打开方法」 et是什么文件类型「必看:et的文件打开方法」 Feb 07, 2024 am 09:48 AM

收到文件格式是.et的文件如何打开?朋友同事间发送文件,收到的却是.et后缀的文件。无法使用默认程序打开。原来.et是WPS默认保存的表格文件格式,MicrosoftExcel是打不开的,如何在不安装WPS的情况下打开这个文档呢?手机接收到文件后,可以选择"用其他应用打开",然后选择上传到邮箱。以QQ邮箱为例,可以通过发送一封邮件给自己的方式进行上传。如果是电脑端接收到的文件,打开邮箱上传即可。上传到邮箱后,点击附件预览即可预览.et文件格式的文件了。这样避免了为了打开一个文件而安装软件。当然为

如何修复 Windows 11 中的远程过程调用失败错误 如何修复 Windows 11 中的远程过程调用失败错误 Apr 14, 2023 pm 06:25 PM

大量Windows用户在他们的计算机上遇到了“远程过程调用失败”的错误。通常,在尝试打开文档、照片以及Windows应用程序时会报告此错误。此错误与远程过程调用(RPC)有关,RPC是一种从网络中其他系统上存在的另一个程序请求服务的协议。因此,RPC始终在您的PC上运行非常重要。您是WindowsPC上受此RPC调用失败错误影响的此类用户吗?然后,您正在阅读正确的文章。在这篇文章中,我们策划了一些可以帮助您在计算机上解决此问题的解决方案。修复1–更改默认程序已设置为打开某些

使用java的File.isDirectory()函数判断文件是否存在且为目录类型 使用java的File.isDirectory()函数判断文件是否存在且为目录类型 Jul 24, 2023 pm 06:57 PM

使用java的File.isDirectory()函数判断文件是否存在且为目录类型在Java编程中,经常会遇到需要判断一个文件是否存在且为目录类型的情况。Java提供了File类来操作文件和目录,其中的isDirectory()函数可以帮助我们判断一个文件是否是目录类型。File.isDirectory()函数是File类中的一个方法,其作用是判断当前Fil

如何使用PHP处理表单的客户端和服务器端验证 如何使用PHP处理表单的客户端和服务器端验证 Aug 10, 2023 pm 03:12 PM

如何使用PHP处理表单的客户端和服务器端验证随着互联网的发展,表单在网站中处于至关重要的地位。表单用于收集用户的输入数据,并将其传递给服务器进行处理。由于用户的输入不可控,必须对表单数据进行验证,以确保数据的有效性和安全性。在本文中,我们将介绍如何使用PHP处理表单的客户端和服务器端验证。一、客户端验证客户端验证是指在用户提交表单之前,通过JavaScrip

Java程序获取给定文件的大小(以字节、千字节和兆字节为单位) Java程序获取给定文件的大小(以字节、千字节和兆字节为单位) Sep 06, 2023 am 10:13 AM

文件的大小是特定文件在特定存储设备(例如硬盘驱动器)上占用的存储空间量。文件的大小以字节为单位来衡量。在本节中,我们将讨论如何实现一个java程序来获取给定文件的大小(以字节、千字节和兆字节为单位)。字节是数字信息的最小单位。一个字节等于八位。1千字节(KB)=1,024字节1兆字节(MB)=1,024KB千兆字节(GB)=1,024MB和1太字节(TB)=1,024GB。文件的大小通常取决于文件的类型及其包含的数据量。以文本文档为例,文件的大小可能只有几千字节,而高分辨率图像或视频文件的大小可

win7如何更改文件类型 win7如何更改文件类型 Oct 23, 2023 pm 01:50 PM

win7更改文件类型的方法有通过文件扩展名更改文件类型或通过控制面板更改文件观念。详细介绍:1、通过文件扩展名更改文件类型,找到要更改文件类型的文件,右键单击该文件,选择“重命名”选项,在文件名后面输入一个点“.“,然后输入想要的文件扩展名,按下“Enter”键确认更改,系统会将文件类型更改为指定的文件扩展名对应的类型;2、通过控制面板更改文件关联, 打开“控制面板”等等。

是什么类型的文件是dat文件? 是什么类型的文件是dat文件? Feb 19, 2024 am 11:32 AM

dat文件是一种通用的数据文件格式,它可以用来存储各种类型的数据。dat文件可以包含文本、图像、音频、视频等不同的数据形式。它被广泛用于许多不同的应用程序和操作系统中。dat文件通常是二进制文件,以字节形式存储数据,而不是以文本形式存储。这意味着dat文件不能直接通过文本编辑器来修改或查看其内容。相反,需要使用特定的软件或工具来处理和解析dat文件的数据。d

在PHP中使用filesize()函数获取文件大小 在PHP中使用filesize()函数获取文件大小 Jun 27, 2023 pm 03:14 PM

PHP是一种广泛应用于Web开发的服务器端脚本语言,旨在为创建动态网页提供支持。其中一个常用的操作是获取文件大小。文件大小对于Web开发者来说十分重要,因为它们需要确保他们的网站的内容不会太大而影响用户体验。在PHP中,可以使用filesize()函数来获取文件大小。该函数的语法如下:filesize(string$filename):float

See all articles