HTML

1
2
3
4
5
6
7
8
9
10
< div  class = "form-group" >
     < label  class = "col-sm-3 col-sm-6 control-label" >图片</ label >
     < span  class = "problem-must" ></ span >
     < div  class = "col-sm-8" >
         < a  class = "fb-upload"  href = "javascript:void(0);"
             < input  class = "form-control"  name = "pic"  type = "file"  accept = ".gif,.jpg,.png,.jpeg"  /> 
             < span  class = "fb-img" >上传图片</ span >
     </ a >
     </ div >
</ div >

css(仿bootstrap的input样式)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.fb-img{ 
     color gray ;
     display : inline- block ;
     padding 6px  12px ;
     text-align left ;
     border : 1px  solid  #ccc ;
     border-radius: 4px ;
     height : 34px ;
     line-height : 1.42857 ;
     width : 100% ;
     box-shadow:  0  1px  1px  rgba( 0 0 0 0.075 inset ;
     transition: border-color  0.15 s ease-in-out  0 s, box-shadow  0.15 s ease-in-out  0 s;
     }
.form-group input[type= "file" ]{
     cursor pointer ;
     opacity:  0 ;
     position absolute ;
     top 0 ;
     }

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var  maxsize = 2*1024*1024; //2M  
var  errMsg =  "上传的图片不能超过2M!!!" ;  
var  tipMsg =  "您的浏览器暂不支持计算上传文件的大小,确保上传图片不要超过2M,建议使用IE、FireFox、Chrome浏览器。"
var   browserCfg = {};  
var  ua = window.navigator.userAgent;  
if  (ua.indexOf( "MSIE" )>=1){  
     browserCfg.ie =  true ;  
} else  if (ua.indexOf( "Firefox" )>=1){  
     browserCfg.firefox =  true ;  
} else  if (ua.indexOf( "Chrome" )>=1){  
     browserCfg.chrome =  true ;  
}
$( ".fb-upload" ).on( "change" , "input[type='file']" , function (){
     var  filePath = $( this ).val();
     var  arr = filePath.split( '\\' );
     var  fileName = arr[arr.length-1];
     var  filesize = 0;  
     if (browserCfg.firefox || browserCfg.chrome ){  
         filesize = $( this )[0].files[0].size;  
     } else  if (browserCfg.ie){  
         var  obj_img =  new  Image();  
         obj_img.dynsrc = fileName;  
         filesize = obj_img.fileSize;  
     } else {
         alert(tipMsg);
         return ;  
     }
     if (filesize ==-1){  
         alert(tipMsg);
         return ;  
     } else  if (filesize > maxsize){
         
         alert(errMsg);
         return ;  
     } else {
         $( ".fb-img" ).html( "" );
         $( ".fb-img" ).html(fileName);
         $( ".fb-img" ).css({ "color" : "#555" });
         return ;  
     }
});