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
;  
    
}
});