通过客户端验证上传图片文件大小的ASP源码

<%@Language=JScript @CodePage=936%> 
<Script Language=JScript RunAt=Server> 
/****************************************************************\ 
<lostinet:source xmlns:lostinet="lostinet-d2g-com/source"> 
 <lostinet:source-info> 
  <lostinet:name>Lostinet_ASP_Upload的例子-动态表单部分</lostinet:name> 
  <lostinet:description>一个动态的表单的例子</lostinet:description> 
 </lostinet:source-info> 
 <lostinet:author-info> 
  <lostinet:name>Lostinet</lostinet:name> 
  <lostinet:email>lostinet@21cn.com;lostinet@chongjian.com;</lostinet:email> 
  <lostinet:homepage>http://lostinet.d2g.com</lostinet:homepage> 
 </lostinet:author-info> 
 <lostinet:copyright-info> 
  <lostinet:copyright>版权声明:这个软件可以随意发布。也可以根据具体情况进行优化修改。但是请保留作者的相关信息。</lostinet:copyright> 
 </lostinet:copyright-info> 
</lostinet:source> 
\****************************************************************/ 
</Script> 
<SCRIPT RUNAT=Server LANGUAGE=JScript> 
</SCRIPT> 
<HTML> 
 <HEAD> 
 <TITLE>JScript Example Form</TITLE> 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312" /> 
 </HEAD> 
<STYLE> 
button 

 border:1px gray solid; 

div.form_item 

 width:500px; 
 overflow-x:visible; 
 padding:4px; 
 margin-top:8px; 
 border:2px gray dotted; 

input.file 

 border:1px gray inset; 
 width:400px; 

textarea.info 

 border:1px gray inset; 
 width:400px; 
 SCROLLBAR-FACE-COLOR: #cccccc; 
 SCROLLBAR-HIGHLIGHT-COLOR: WHITE; 
 SCROLLBAR-SHADOW-COLOR: WHITE; 
 SCROLLBAR-ARROW-COLOR: maroon;  
 SCROLLBAR-TRACK-COLOR: #e0e4e4; 
 SCROLLBAR-3DLIGHT-COLOR: #cccccc; 
 SCROLLBAR-DARKSHADOW-COLOR: #cccccc; 
 SCROLLBAR-BASE-COLOR: #cccccc; 

</STYLE> 
<SCRIPT> 
var countImgLoading=0; 
function GetItemDiv(e) 

 while(e=e.parentElement) 
 { 
  if(e.className.toLowerCase()=="form_item") 
  { 
   return e; 
  } 
 } 
 throw(new Error(-1,"Impossible:GetItemDiv发生不能处理的意外")); 

function GetNamedItem(div,name) 

 return div.all(name); 
 throw(new Error(-11,"Impossible:GetNamedItem发生不能处理的意外"+name)); 

function Check_Item(div) 

 var file=GetNamedItem(div,"file"); 
 var info=GetNamedItem(div,"info"); 
 var width=GetNamedItem(div,"width"); 
 var height=GetNamedItem(div,"height"); 
 var preview=GetNamedItem(div,"preview"); 
 if(file.value.replace(/\s/g,"")=="") 
 { 
  file.focus(); 
  return false; 
 } 
 if(info.value.replace(/\s/g,"")=="") 
 { 
  info.focus(); 
  return false; 
 } 
 if(info.value.length>1000) 
 { 
  alert("描述的长度不能超过1000字"); 
  info.focus(); 
  return false; 
 } 
 if(height.value=="0"||width.value=="0") 
 { 
  file.focus(); 
  return false; 
 } 
 if(parseInt(height.value)>800||parseInt(width.value)>600) 
 { 
  alert("图片尺寸大于800X600"); 
  file.focus(); 
  return false; 
 } 
 if(preview.src.toLowerCase().indexOf("file://")!=0) 
 { 
  alert("只能上传本地文件!!\n请把文件框的内容清楚\n然后按浏览"); 
  file.focus(); 
  return false; 
 } 
 if(preview.fileSize==0) 
 { 
  file.focus(); 
  return false; 
 } 
 return preview.fileSize; 

function Check_Form() 

 if(event==null)var event=new Object(); 
 var totalSize=0; 
 var haveItem=false; 
 var coll=form_submit.children; 
 for(var i=0;i<coll.length;i++) 
 { 
  var item=coll.item(i); 
  if(item.className.toLowerCase()=="form_item") 
  { 
   haveItem=true; 
   totalSize=Check_Item(item); 
   if(totalSize==false) 
   { 
    alert("该输入框必须填上正确的内容"); 
    return event.returnValue=false; 
   } 
  } 
 } 
 if(haveItem==false) 
 { 
  Add_FormItem(); 
  return event.returnValue=false; 
 } 
 if(totalSize==0) 
 { 
  alert("不打算上传了");//暂时没有可能执行 
  return event.returnValue=false; 
 } 
 if(totalSize>1024*1024) 
 { 
  alert("不能上传超过1M的数据"); 
  return event.returnValue=false; 
 } 
 btn_submit.disabled=true; 
 return event.returnValue=true; 

function Add_FormItem() 

 form_submit.elements("input_submit").insertAdjacentHTML("beforebegin",form_template.innerHTML); 

function Delete_FormItem() 

 var btn=event.srcElement; 
 GetItemDiv(btn).removeNode(true); 

function Show_Preview() 

 var div=GetItemDiv(event.srcElement); 
 var preview=GetNamedItem(div,"preview"); 
 var file=GetNamedItem(div,"file"); 
 if(preview.readyState=="uninitialized"||preview.readyState=="complate")countImgLoading++; 
 btn_submit.disabled=true; 
 preview.src=file.value; 

function OnPreviewLoad(secceed) 

 btn_submit.disabled=false;//bug:当表单在提交的时候,忽略 
 countImgLoading--; 
 var div=GetItemDiv(event.srcElement); 
 var preview=GetNamedItem(div,"preview"); 
 var height=GetNamedItem(div,"height"); 
 var width=GetNamedItem(div,"width"); 
 if(secceed) 
 { 
  height.value=preview.height; 
  width.value=preview.width; 
 } 
 else 
 { 
  height.value=width.value="0"; 
 } 
 var filesize=GetNamedItem(div,"filesize"); 
 filesize.innerText=Math.floor(preview.fileSize/1024)+"K"; 

function OnPreviewMouseOver(div) 

 if(div.contains(event.fromElement))return; 
 var divItem=GetItemDiv(div); 
 var preview=GetNamedItem(divItem,"preview"); 
 div.style.overflow="visible"; 
 preview.style.position="absolute"; 

function OnPreviewMouseOut(div) 

 if(div.contains(event.toElement))return; 
 var divItem=GetItemDiv(div); 
 var preview=GetNamedItem(divItem,"preview"); 
 div.style.overflow="hidden"; 
 preview.style.position="static"; 

function OnPreviewClick(div) 

 var divItem=GetItemDiv(event.srcElement); 
 var preview=GetNamedItem(divItem,"preview"); 
 div.style.overflow="hidden"; 
 preview.style.position="static"; 

</SCRIPT> 
<BODY> 
 <DIV> 
  <BUTTON ID="btn_add">添加一个需要上传的图片</BUTTON> 
  <BUTTON ID="btn_submit">提交所有内容</BUTTON> 
 </DIV> 
 <DIV> 
 <FORM ID="form_submit" ACTION="e.g.jscript.action.asp" METHOD="POST" ENCTYPE="multipart/form-data" ONSUBMIT="Check_From()"> 
  <INPUT ID="input_submit" TYPE="submit" STYLE="display:none">  
 </FORM> 
 </DIV>

<FORM ID="form_template" STYLE="display:none;"> 
  <DIV CLASS="form_item"> 
   <DIV> 
    要上传图片(<SPAN id="filesize"></SPAN>)的路径:    <BUTTON CLASS="delete" ONCLICK="Delete_FormItem()">删除</BUTTON> 
   </DIV> 
   <DIV STYLE="border:1px orange solid;width:200px;height:50px;overflow:hidden;" ONMOUSEOVER="OnPreviewMouseOver(this)" ONMOUSEOUT="OnPreviewMouseOut(this)" ONCLICK="OnPreviewClick(this)"> 
    <INPUT TYPE="hidden" NAME="width" VALUE="0"> 
    <INPUT TYPE="hidden" NAME="height" VALUE="0"> 
    <IMG ID="preview" STYLE="position:static" ONLOAD="OnPreviewLoad(true)" ONERROR="OnPreviewLoad(false)"> 
   </DIV> 
   <DIV> 
    <INPUT TYPE="file" NAME="file" CLASS="file" ONCHANGE="Show_Preview()"> 
   </DIV> 
   <DIV> 
    相关的描述: 
   </DIV> 
   <DIV> 
    <TEXTAREA NAME="info" CLASS="info" ROWS="4"></TEXTAREA> 
   </DIV> 
  </DIV> 
 </FORM> 
</BODY> 
<SCRIPT> 
Add_FormItem(); 
function btn_add.onclick() 

 Add_FormItem(); 

function btn_submit.onclick() 

 if(Check_Form()) 
  form_submit.submit(); 

</SCRIPT> 
</HTML>

(0)

相关推荐

  • 通过客户端验证上传图片文件大小的ASP源码

    <%@Language=JScript @CodePage=936%>  <Script Language=JScript RunAt=Server>  /****************************************************************\  <lostinet:source xmlns:lostinet="lostinet-d2g-com/source">   <lostinet:source-i

  • jquery validate.js表单验证入门实例(附源码)

    小编上网查阅了许多关于jquery.validate的文章,大部门只是介绍它的api和用法,没有一个详细的的入门案例介绍,研究了半天还是无从下手.为此,小编自己做了一个jquery validate.js表单验证入门实例,写的不是特别好,但应该适用于初学者,分享给大家. 以下是validate.js表单验证入门实例参考源码,文章下面有源码下载地址: <html> <head> <meta http-equiv="Content-Type" content=

  • 可以查询google排名的asp源码

    以下是源码,请命名为.ASP文件. 复制代码 代码如下: <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <%  if request("action") = "1" then   word = request("word")   url = request("url")   i

  • javascript 客户端验证上传图片的大小(兼容IE和火狐)

    在我 上一篇帖子 (译文 ) 中,谈到了各个浏览器究竟会在什么情况下弹出脚本失控提示,对于Internet Explorer 来说,当浏览器执行了数量过多的语句时就会停止执行脚本,而其他的浏览器,则是持续执行脚本超过一定时间的时候就会给出提示.而我们要探讨的核心问题,不是这些浏览器如果探测失控的脚本,而是我们如何才可以让脚本运行的更快一些,从而避免这些警告 . 脚本失控基本上有以下四个方面的原因: 在循环中执行了太多的操作. 臃肿的函数体 过多的递归 过多的 DOM 调用 在这篇帖子中,我将会把

  • asp源码打包成xml的工具

    下边这个存为Pack.asp,打包文件时运行 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>  <%OptionExplicit%>  <%OnErrorResumeNext%>  <% Response.Charset="UTF-8"%>  <% Server.ScriptTimeout=99999999%>  <!DOC

  • 自定义javascript验证框架示例【附源码下载】

    本文实例讲述了自定义javascript验证框架.分享给大家供大家参考,具体如下: 看过 jquery 验证框架,在使用的时候,其实还是很晕的,很麻烦,使用的时候代码也不简洁,因此才有了弄一个自己的jquery验证框架的计划,基本原理就是对 input ,select, textarea 这三类控件做校验,在里面定义自定义属性作为检验. 另外采用js 做i18n 国际化,通过cookies 中的语言,调用不同的js 语言包, 对于自己开发项目来说,足够用了,而且,还可以灵活扩展.个人用应该不错.

  • scrapy-redis源码分析之发送POST请求详解

    1 引言 这段时间在研究美团爬虫,用的是scrapy-redis分布式爬虫框架,奈何scrapy-redis与scrapy框架不同,默认只发送GET请求,换句话说,不能直接发送POST请求,而美团的数据请求方式是POST,网上找了一圈,发现关于scrapy-redis发送POST的资料寥寥无几,只能自己刚源码了. 2 美团POST需求说明 先来说一说需求,也就是说美团POST请求形式.我们以获取某个地理坐标下,所有店铺类别列表请求为例.获取所有店铺类别列表时,我们需要构造一个包含位置坐标经纬度等

  • Spring Security源码解析之权限访问控制是如何做到的

    〇.前文回顾 在实战篇<话说Spring Security权限管理(源码详解)>我们学习了Spring Security强大的访问控制能力,只需要进行寥寥几行的配置就能做到权限的控制,本篇来看看它到底是如何做到的. 一.再聊过滤器链 源码篇中反复提到,请求进来需要经过的是一堆过滤器形成的过滤器链,走完过滤器链未抛出异常则可以继续访问后台接口资源,而最后一个过滤器就是来判断请求是否有权限继续访问后台资源,如果没有则会将拒绝访问的异常往上向异常过滤器抛,异常过滤器会对异常进行翻译,然后响应给客户端

  • Asp.Mvc 2.0用户客户端验证实例讲解(3)

    今天给大家讲解下ASP.NET mvc的客户端验证.通常情况下,我们在页面中对输入的内容多要进行客户端验证,客户端验证一般使用JS进行,这里咱们讲解下使用jquery.validate插件进行客户端验证. 首先咱们看下注册页面的验证效果 以上验证主要包括 1.用户名不能为空 2.密码不能为空,密码长度不能小于5位数 3.确认密码不能为空,确认密码长度不能小于5位,确认密码必须和密码文本框输入的一致 4.邮箱格式必须正确. 以下是使用jquery.validate插件进行验证的代码 [html]

  • ASP.NET MVC5验证系列之客户端验证

    前面学习了,服务端验证,这篇文章中,我们接着学习客户端验证,客户端的验证,使用Jquery和Jquery插件来实现[jquery.validate.min.js and jquery.validate.unobtrusive.min.js) ] 在服务端验证中,页面必须要提交到服务器,进行验证,如果数据验证不通过,服务器端就会发送一个响应到客户端,然后客户端根据相应的信息,进行处理:而客户端验证则不同,用户输入的数据,只要一提交,客户端就会进行先验证,如果不通过就报错,不会提交到服务器进行验证,

随机推荐