几种上传控制大小代码

<SCRIPT>
function getImageDimension (imgURL, loadHandler) {
  var img = new Image();
  img.onload = loadHandler;
  if (document.layers
      && location.protocol.toLowerCase() != 'file:'
      && navigator.javaEnabled())
    netscape.security.PrivilegeManager.enablePrivilege(
      'UniversalFileRead'
    );
  img.src = imgURL;
}
function getFileSize (fileName) {
  if (document.layers) {
    if (navigator.javaEnabled()) {
      var file = new java.io.File(fileName);
      if (location.protocol.toLowerCase() != 'file:')
        netscape.security.PrivilegeManager.enablePrivilege(
        'UniversalFileRead'
        );
      return file.length();
    }
    else return -1;
  }
  else if (document.all) {
    window.oldOnError = window.onerror;
    window.onerror = function (err) {
      if (err.indexOf('utomation') != -1) {
        alert('file access not possible');
        return true;
      }
      else
        return false;
    };
    var fso = new ActiveXObject('Scripting.FileSystemObject');
    var file = fso.GetFile(fileName);
    window.onerror = window.oldOnError;
    return file.Size;
  }
}
function showImageDimensions () {
  alert(this.width + 'x' + this.height);
}
</SCRIPT>
<SCRIPT>
function checkImageDimensions (fileName) {
  var imgURL = 'file:///' + fileName;
  getImageDimension(imgURL, showImageDimensions);
}
</SCRIPT>


<INPUT TYPE="file" NAME="fileName">
<BR>
<INPUT TYPE="button" VALUE="check file size"
       ONCLICK="alert(getFileSize(this.form.fileName.value))">
<BR>
<INPUT TYPE="button" VALUE="check image dimensions"
       ONCLICK="checkImageDimensions(this.form.fileName.value)">


<script language="Jscript">
function chksize(strFileName){
    var maxsize = 100;    //定义允许文件的大小,单位KB,请根据需要自行修改!
    var objStream = new ActiveXObject("ADODB.Stream");
    objStream.Type = 1;
    objStream.Open();
    objStream.LoadFromFile(strFileName);
    if(Math.round(objStream.Size/1024,2)>maxsize)
        {alert ("抱歉!您选择的文件为 "+Math.round(objStream.Size/1024,2)+" KB /n超过了程序"+maxsize+" KB 的限制!");
        document.form1.reset();
        return false;
        }
}
</script>

<form name="form1" action="" method="post">
<input type="file" name="Upfile" onchange="chksize(this.value)">
</form>

 
<html> 
<input type="file" name="file1" onchange="ShowSize(this.value)"> 
<script language="JavaScript"> 
<!-- 
function ShowSize(files) 

  var fso,f; 
  fso=new ActiveXObject("Scripting.FileSystemObject"); 
  f=fso.GetFile(files); 
  if(f.size>1024*4){
  alert(f.size+" Bytes"); 
  }

//--> 
</script> 
</html>

<html>
<head>
<title>Upload Image</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="IUpload" action="upfile.asp" method="post">
<p><input type="file" name="picsrc" size="40" onchange="picshow.src=document.IUpload.picsrc.value">
<input type="button" value="上载" onclick="detect()"></p></form>
<p><img name="picshow"  title="图像预览"></p>
</body>
</html>

 

<SCRIPT LANGUAGE="JavaScript">
<!--
function imgExceedSize(w,h){
if(!document.IUpload.picsrc.value==""){
if(picshow.width>w||picshow.height>h){
alert("图像尺寸:"+picshow.width+"X"+picshow.height+"。////n图像尺寸过大!你只能上传尺寸为 "+w+"×"+h+"的图像,请重新浏览图片!");
return true;
}else{
return false;
}
}else{
return true;
}
}

 

function detect(){
var ok=imgExceedSize(50,50);
if(ok){
document.IUpload.reset();
}else{
document.IUpload.submit();
}
}

 

//-->
</SCRIPT>

文件上传之前的检测,通常是通过文件名来判断文件类型是否合法,但是要想检测文件的大小很难办到,除非在本地或者使用控件。不过在IE下img有几个附加的属性,如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters,我们可以通过这些属性来获取图片文件的部分信息,如文件大小,我们用file表单同img标签结合,就能够在上传之前判断图片文件的大小是否合法了

 

 

 

 


限制:<FORM id="Form1" encType="multipart/form-data" Runat="Server">
  <CENTER><input type="hidden" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit">                                      //设置一个控制大小的按钮,Value值。
文件位置:<input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)" onpropertychange="document.all.fileChecker.src='file:///'+this.value"
    runat="server"><BR>
   图片预览:<img id="fileChecker" height="65" width="82" border="0" alt="图片预览">
   <BR>
   <div id="blockDiv" style="VISIBILITY:visible" align="center"><ASP:BUTTON id="Button1" onclick="Upload" Runat="Server" Text="上传"></ASP:BUTTON>
    <INPUT type="reset" value="重置"></div>
   <HR>
   <H1><ASP:LABEL id="Result" Runat="Server"></ASP:LABEL></H1>
  </CENTER>
 </FORM>
 <script type="text/javascript">

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

var oFileChecker = document.getElementById("fileChecker");

function changeSrc(filePicker)
{
    oFileChecker.src = filePicker.value;
}

oFileChecker.onreadystatechange = function ()
{
    if (oFileChecker.readyState == "complete")
    {
        checkSize();
    }
}

function showObject() {                               //符合就显示
if (ns4) document.blockDiv.visibility = "show"
else blockDiv.style.visibility = "visible"
}
function hideObject() {                               //超过大小就隐藏上传按钮
if (ns4) document.blockDiv.visibility = "hide"
else blockDiv.style.visibility = "hidden" }

function checkSize()
{
    var limit  = document.getElementById("fileSizeLimit").value * 1024*102.4;  //设置大小

    if (oFileChecker.fileSize > limit)
    {
        alert("图片大小不能超过1M");
       hideObject();
    }
    else
    {
      showObject();
    }
   
  
}
</script>

 


另外补充一些手册里的东西:
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
MAX_FILE_SIZE 隐藏字段(单位为字节)必须先于文件输入字段,其值为接收文件的最大尺寸。这是对浏览器的一个建议,PHP 也会检查此项。在浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件。实际上,PHP 设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目,因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。

 

 

 

if (oFileChecker.width > 100)
{
alert("too long");
}
....

if (oFileChecker.height > 100)
{
alert("too high");
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值