上传图片表单file之我的理解

前段时间做到上传图片的功能,虽然是个小例子,但是我觉得有必要分享一下我的心得和体会,以供大家参考借鉴。好了,废话不多说,上代码。
HTML:

//按钮部分
<a href="javaScript:;"><input type="file" name="" id="" value="" onchange="getImgURL(this)"/></a>

//输入框部分
<div class="textarea" contenteditable="true"  name="content">推荐理由</div>

CSS:

footer a{
    width: 50%;
    height: 0.5rem;
    display: block;
    border-top: 1px solid #E6E6E6;
    float: left;
    background: white;
}
footer a:nth-of-type(1){
    border-right: 1px solid #E6E6E6;
    background: url(../image/camera.png) no-repeat center center;
    background-size: 0.26rem 0.24rem;
}
footer input{
    width: 100%;
    height: 0.5rem;
    opacity: 0;
}

这里我重点说一下input中file的样式美化。因为file自带文字和按钮,看起来非常难看,那我们怎么做呢?我们给input设置透明度为‘0’!,让它“消失”,宽度和外面的a标签是一样的,都是100%,然后给外面的a标签添加背景图,这样的话就只有图标了,从而达到美化的效果。接下来我们说说js

JS:

//获取图片链接
function getImgURL(node) {    
    var imgURL = "";      
    try{     
        var file = null;  
        if(node.files && node.files[0] ){  
            file = node.files[0];   
        }else if(node.files && node.files.item(0)) {                                  
            file = node.files.item(0);     
        }     
        //Firefox 因安全性问题已无法直接通过input[file].value 获取完整的文件路径  
        try{  
            //Firefox7.0   
            imgURL =  file.getAsDataURL();    
            //alert("//Firefox7.0"+imgRUL);                           
        }catch(e){  
            //Firefox8.0以上                                
            imgRUL = window.URL.createObjectURL(file);  
            //alert("//Firefox8.0以上"+imgRUL);  
        }  
     }catch(e){      //这里不知道怎么处理了,如果是遨游的话会报这个异常                   
        //支持html5的浏览器,比如高版本的firefox、chrome、ie10  
        if (node.files && node.files[0]) {                            
            var reader = new FileReader();   
            reader.onload = function (e) {                                        
                imgURL = e.target.result;    
            };  
            reader.readAsDataURL(node.files[0]);   
        }    
     }   
    creatImg(imgRUL);  
    return imgURL;  
}  

//生成img标签
function creatImg(imgRUL){   //根据指定URL创建一个Img对象  
    var textHtml = "<img src='"+imgRUL+"'/>";  
    $(".textarea").append(textHtml);  
}  

整体思路:点击上传按钮的时候,获取本地图片的url,然后在输入框中生成img标签。
此处使用的输入框是contenteditable="true"属性的输入框代替textarea。

eg:
这里写图片描述
这里写图片描述
这里写图片描述
Tips:如果作者的文章有帮到你,请你不要嫌麻烦,登录账号给作者留一句言,也是对作者的成果的肯定。谢谢。有不足的地方希望能够指出来,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值