日期:2014-05-18  浏览次数:20663 次

控制上传文件的大小的问题?
我在后台写 this.file1.PostedFile.ContentLength < 10000000 用来控制上传文件大小 可是这种方法是在我把文件上传到服务器后 才开始判断大小的 文件小的还可以判断 当文件比较大的时候 页面会死 这种情况怎么解决阿 能不能在没有把文件上传到服务器前的时候 就判断大小阿 或者传到服务器后再判断文件大小 如果超过限制 再删除它 可是这种情况页面怎么会不死啊
 我也上网搜了很多 可是回复都是讲大框的 希望能提供具体的方法

------解决方案--------------------
上传前判断要用到activex,否则你是没权限判断的.参考:

HTML code

<HTML><HEAD>         
      <SCRIPT>         
                
      function       getFileSize       (fileName)       {         
                
      if       (document.all)       {         
      window.oldOnError       =       window.onerror;                         
      window.onerror       =       function       (err)       {         
      if       (err.indexOf('utomation')       !=       -1)       {         
      alert('没有访问文件的权限');                                         
      return       true;                                 
      }                             
      else             
      return       false;                         
      };         
                      var       fso       =       new       ActiveXObject('Scripting.FileSystemObject');         
                      var       file       =       fso.GetFile(fileName);                         
      window.onerror       =       window.oldOnError;         
                      return       file.Size;           }}         
      </SCRIPT>         
      </HEAD>         
      <BODY>         
      <FORM       NAME="formName"><INPUT       TYPE="file"       NAME="fileName"><BR>         
      <INPUT       TYPE="button"       VALUE="查看文件字节大小"         
    
  ONCLICK="alert(getFileSize(this.form.fileName.value))"><BR>         
      </FORM></BODY>         
      </HTML>

------解决方案--------------------
IE都话 可以这样
JScript code
function getFileSize(filePath)   
{   
   var fso = new ActiveXObject("Scripting.FileSystemObject");   
   return fso.GetFile(filePath).size;   
}

------解决方案--------------------
图片的话 可以这样
JScript code
function getFileSize(filePath)
{
   var image=new Image();
   image.dynsrc=filePath;
   return image.fileSize;
}

------解决方案--------------------
web.config内:

<httpRuntime executionTimeout="300" maxRequestLength="10240"/>
</system.web>

executionTimeout设置超时秒数
maxRequestLength允许大小:kb

------解决方案--------------------
下面的代码供你参考一下,你可以自己改成aspx页面里能用的方式

<html>
<head>
<title>客户端控制上传图像大小</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
var FileMaxSize = 50;//限制上传的文件大小,单位(k)
function chkform(){
if(document.HwForm.Photo.value==""){
alert("请选择照片");
document.HwForm.Photo.focus();
return false;
}
if(document.HwForm.PhotoFileSize.value<=0){
alert("请重新选择照片");
document.HwForm.Photo.focus();
return false;
}
if(document.HwForm.PhotoFileSize.value>FileMaxSize*1024){
alert("选择的照片超过"+FileMaxSize+"K,请重新选择");
document.HwForm.Photo.focus();
return false;}
alert("可以提交,当前为测试");return false;
}
//-->
</SCRIPT>
<form method="POST" name="HwForm" onsubmit="return chkform();" enctype="multipart/form-data">