自知其無知
          不懂,慢慢懂。
          posts - 2,comments - 2,trackbacks - 0
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
          <title>無標題文檔</title>
          </head>

          <body>
          <script type="text/javascript">
          var imgSize = 1024 * 100//最大100K
          function checkImgSize(){
              
          var file = document.getElementById("img");
              
          if(file.value != ""){
                  
                  
          //檢測類型
                  var val = file.value;
                  
          if(/^.*?\.(gif|png|jpg|jpeg|bmp)$/.test(val)){
                  }
          else{
                      alert(
          "只能上傳gif, png, jpg, bmp格式的圖片");
                      
          return false;
                  }

                  
                  
          var img = new Image();
                  img.onreadystatechange 
          = function(){
                      
          if(img.readyState == "complete"){
                          
          if(img.fileSize <=0 || img.fileSize > imgSize){
                              alert(
          "當前文件大小" + img.fileSize / 1024 + "KB, 超出最大限制 " + imgSize / 1024 + "KB");
                          }
          else{
                              alert(
          "OK");
                              
          return true;
                          }

                      }

                  }

                  
                  img.src 
          = val;
              }
          else{
                  alert(
          "請選擇上傳的文件!");
                  
          return false;
              }

          }

          </script>
          <input type="file" id="img" />
          <input type="submit" value="上傳" onclick="return checkImgSize()" />
          </body>
          </html>



          ==========================
          這是另一個,思路一樣,只不過綁定事件是通過 attach 上去的;

          判斷上傳圖片大小:
          -------------------------
          <input       id=inp       type= "file ">      
              <button       onclick= "ys() "> Test </button>      
              <script>      
              var       img=null;      
              function       ys()      
              {      
              if(img)img.removeNode(true);      
              img=document.createElement( "img ");      
              img.style.position= "absolute ";      
              img.style.visibility= "hidden ";      
              img.attachEvent( "onreadystatechange ",orsc);      
              img.attachEvent( "onerror ",oe);      
              document.body.insertAdjacentElement( "beforeend ",img);      
              img.src=inp.value;      
              }      
              function       oe()      
              {      
              alert( "cant       load       img ");      
              }      
              function       orsc()      
              {      
              if(img.readyState!= "complete ")return       false;      
              alert( "圖片大小: "+img.offsetWidth+ "X "+img.offsetHeight);      
              alert( "圖片尺寸: "+img.fileSize);      
              }      
              </script>
          -----------------------------
          不過這代碼的缺點是還使用插件,所以如果把他防在web里面,是不好用的。文件大小一般還是在服務器端來檢測的.
          *****************************
          下面的程序是控制圖片顯示大小,可以把圖片等比例縮放:
          -----------------------------
          <script   type= "text/javascript ">
          //     讓圖片成比例縮小

          function   changeImage(ImgD){
          var   image=new   Image();  
          image.src=ImgD.src;  

          if(image.width> 185){
          ImgD.width=185;
          ImgD.height=(185*image.height)/image.width;
          image.width=ImgD.width;
          image.height=ImgD.height;
          }

          if(image.height> 169){
          ImgD.height=169;
          ImgD.width=(169*image.width)/image.height;
          image.height   =   ImgD.height;
          image.width   =   ImgD.width;
          }

          ImgD.alt   =   image.width   +   "× "   +   image.height;
          }
          </script>
          <img   src= " "   width= "10 "   height= "70 "   onload= "changeImage(this) "/>
          ------------------------------
          這個程序需要主義的是,在加載大圖片的時候,要給圖片加載留夠充足的時間否則,會出現錯誤的.


          ===============================================
          文件上傳之前的檢測,通常是通過文件名來判斷文件類型是否合法,但是要想檢測文件的大小很難辦到,除非在本地或者使用控件。不過在IE下img有幾個附加的屬性,如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters,我們可以通過這些屬性來獲取圖片文件的部分信息,如文件大小,我們用file表單同img標簽結合,就能夠在上傳之前判斷圖片文件的大小是否合法了。

          還有一個小小的發現就是,IE下動畫的onload事件是在每次循環開始都觸發,這樣我們可以通過他來達到和js里setInterval()函數一樣的效果,如:



          這兩個例子的源代碼如下:
          第一個:

          限制:
          html
          Java代碼 復制代碼
          1. <input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/> K   
          2. <input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>   
          3. <img src="about:blank" id="fileChecker" alt="test"  height="18"/>  


          js
          Java代碼 復制代碼
          1. <script type="text/javascript">   
          2. var oFileChecker = document.getElementById("fileChecker");   
          3.        
          4. function changeSrc(filePicker)   
          5. {   
          6.     oFileChecker.src = filePicker.value;   
          7. }   
          8.        
          9. oFileChecker.onreadystatechange = function ()   
          10. {   
          11.     if (oFileChecker.readyState == "complete")   
          12.     {   
          13.         checkSize();   
          14.     }   
          15. }   
          16.        
          17. function checkSize()   
          18. {   
          19.     var limit  = document.getElementById("fileSizeLimit").value * 1024;   
          20.        
          21.     if (oFileChecker.fileSize > limit)   
          22.     {   
          23.         alert("too large");   
          24.     }   
          25.     else  
          26.     {   
          27.         alert("ok");   
          28.     }   
          29. }   
          30. </script>    


          第二個:


          Java代碼 復制代碼
          1. <img src="monkey.gif" id="monkey" alt="monkey" /> loops: <span id="loopsNum"></span>   
          2.        
          3. <script type="text/javascript">   
          4. var loops = 0;   
          5. document.getElementById("monkey").onload = function ()   
          6. {   
          7.     document.getElementById("loopsNum").innerText= loops;   
          8.     loops ++;   
          9. }   
          10. </script>    



          每三個:

          Java代碼 復制代碼
          1. <script>   
          2. function checkSize(imgObj)   
          3. {   
          4. alert(imgObj.fileSize);   
          5. }   
          6.   
          7. </script>   
          8. <BODY>   
          9. <form id="aform">   
          10. <img id=im onload="checkSize(this)" src="http://www.google.com/logos/winter_holiday05_5res.gif">   
          11. </form>   
          12. </BODY>  



          限制文件類型

          Java代碼 復制代碼
          1. function CheckFile(){   
          2.   with(document.aform){   
          3.   var filepath1 =SourceFile1.value;   
          4.   var fileextend1 = filepath1.substring(filepath1.lastIndexOf('.')+1,filepath1.length);   
          5.   if(fileextend1==""){   
          6.     alert("對不起,你必須選擇一個文件!");   
          7.     return false;   
          8.   }   
          9.   fileextend1 = fileextend1.toLowerCase();   
          10.   if(fileextend1 != "xls" && fileextend1 !="txt"){   
          11.     alert("對不起,您選擇的文件格式不對,請選擇文本文件(txt)或Excel文件。");   
          12.     return false;   
          13.   }   
          14.   if(fileextend1 == "xls"){   
          15.     if(!confirm("上傳EXCEL文件速度將會很慢,我們推薦您使用文本格式。你確定要使用這個文件嗎?")){   
          16.       return false;   
          17.       }   
          18.     }  
          posted on 2008-12-12 00:15 CopyHoo 閱讀(1124) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吉水县| 封开县| 光泽县| 甘谷县| 镇平县| 阿合奇县| 新丰县| 固安县| 鄂托克前旗| 台北市| 满洲里市| 舒城县| 广昌县| 金华市| 桐乡市| 榆社县| 南和县| 泸定县| 武穴市| 根河市| 乐都县| 孟津县| 张家港市| 稷山县| 武安市| 平南县| 四子王旗| 昆明市| 静海县| 舞钢市| 思茅市| 乌海市| 梁山县| 绿春县| 中卫市| 合作市| 萝北县| 通河县| 南京市| 东至县| 佳木斯市|