前端js上传照片实现可预览功能

简介: 前端js上传照片实现可预览功能

在写项目的时候,遇到了上传照片的功能,根据项目的需要,有很多种写法,有些需要上传之前对图片进行裁剪,有些直接上传到页面预览即可,再次之前,用过插件写了两次。用到的都是不同的插件,今天用jquery直接写了一个简单的功能。


<!DOCTYPE HTML>
<html>
    <head>
        <title>新增地图配置</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
        <style>
            #img {
                width: 100px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <form id="dialogForm">
            <div class="row">
                <div class="col-md-12 col-sm-12  col-xs-12">
                    <div class="form-group">
                        <label class="col-md-3 col-sm-3  col-xs-3 control-label">图标</label>
                        <div class="col-md-6 col-sm-6  col-xs-6">
                            <img src="" id="img" class="hide">
                            <input type="file" name="file" id="file" multiple="multiple" />
                        </div>
                    </div>
                </div>
            </div>
        </form>
        <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
        <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
        <script>
            $("#file").change(function() {
                var objUrl = getObjectURL(this.files[0]);
                if(objUrl) {
                    $("#img").attr("src", objUrl);
                    $("#img").removeClass("hide");
                }
            });
            //建立一个可存取到file的url
            function getObjectURL(file) {
                var url = null;
                url = window.webkitURL.createObjectURL(file);
                return url;
            }
        </script>
    </body>
</html>

关于浏览器兼容问题,上面写道的是在谷歌浏览器可用,要在火狐ie浏览器里面同样适用只需要在代码里面加上一段适配的代码,判断使用哪个浏览器打开即可。

//建立一个可存取到file的url
    function getObjectURL(file) 
    {
        var url = null ;
        url = window.webkitURL.createObjectURL(file) ;
        if (window.createObjectURL!=undefined) 
        {  // basic
            url = window.createObjectURL(file) ;
        }
        else if (window.URL!=undefined) 
        {
            // mozilla(firefox)
            url = window.URL.createObjectURL(file) ;
        } 
        else if (window.webkitURL!=undefined) {
            // webkit or chrome
        }
        return url ;
    }
相关文章
|
4天前
|
JavaScript 前端开发 API
Node.js在前端的妙用:打造更出色的Web体验
Node.js在前端的妙用:打造更出色的Web体验
22 5
|
24天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
47 5
|
1月前
|
JavaScript 前端开发 Java
纯前端JS实现人脸识别眨眨眼张张嘴案例
纯前端JS实现人脸识别眨眨眼张张嘴案例
53 0
|
21小时前
|
前端开发 JavaScript
【Web 前端】 js中call、apply、bind有什么区别?
【4月更文挑战第22天】【Web 前端】 js中call、apply、bind有什么区别?
【Web 前端】 js中call、apply、bind有什么区别?
|
21小时前
|
前端开发 JavaScript 索引
【Web 前端】JS的几种具体异常类型(报错)
【4月更文挑战第22天】【Web 前端】JS的几种具体异常类型(报错)
|
21小时前
|
自然语言处理 前端开发 JavaScript
【Web 前端】什么是JS闭包?
【4月更文挑战第22天】【Web 前端】什么是JS闭包?
|
21小时前
|
存储 缓存 JavaScript
【Web 前端】JS哪些操作会造成内存泄露?
【4月更文挑战第22天】【Web 前端】JS哪些操作会造成内存泄露?
|
21小时前
|
前端开发 JavaScript 算法
【Web 前端】JS垃圾回收机制?
【4月更文挑战第22天】【Web 前端】JS垃圾回收机制?
|
21小时前
|
存储 前端开发 JavaScript
【Web 前端】JS中的栈和堆是什么?优缺点?
【4月更文挑战第22天】【Web 前端】JS中的栈和堆是什么?优缺点?
|
22小时前
|
JavaScript 前端开发
【Web 前端】JS中检测数据类型的有哪些?
【4月更文挑战第22天】【Web 前端】JS中检测数据类型的有哪些?