利用jquery,html5实现图片预览实时上传

         

html代码

    <div class="form-group">
         <label for="pic" class="col-md-1 control-label">小图:</label>
         <div class="col-md-4">
             <input type="file" class="form-control" name="pic" />
             <div class="progress"><span class="bgpro"></span></div>
             <img src="" width="100px" style="display:none" class="pic_show"/>
         </div>
   </div>
css代码

.progress {
    width:100%;
    height:10px;
    border:1px solid #ccc;
    margin:3px 0;
}
.bgpro {
    display:block;
    width:1%;
    background:green;
    height:10px;
    color:#fff;
}
js代码

<script type="text/javascript">
    $(‘input[name="pic"]‘).on(‘change‘,function() {
        if(typeof this.files == ‘undefined‘){
            return;
        }
        var img         = this.files[0];//获取图片信息
        var type         = img.type;//获取图片类型,判断使用
        var url         = getObjectURL(this.files[0]);//使用自定义函数,获取图片本地url
        var fd             = new FormData();//实例化表单,提交数据使用
        fd.append(‘img‘,img);//将img追加进去
        if(url)
            $(‘.pic_show‘).attr(‘src‘,url).show();//展示图片
        if(type.substr(0,5) != ‘image‘){//无效的类型过滤
            alert(‘非图片类型,无法上传!‘);
            return;
        }
        //开始ajax请求,后台用的tp
        $.ajax({
            type     : ‘post‘,
            url     : ‘__URL__/upload_img‘,
            data     : fd,
            processData: false,  // tell jQuery not to process the data  ,这个是必须的,否则会报错
                        contentType: false,   // tell jQuery not to set contentType
            dataType : ‘text‘,
            xhr     : function() {//这个是重点,获取到原始的xhr对象,进而绑定upload.onprogress
                var xhr     = jQuery.ajaxSettings.xhr();
                xhr.upload.onprogress     = function(ev) {
                    //这边开始计算百分比
                    var parcent = 0;
                    if(ev.lengthComputable) {
                                        percent = 100 * ev.loaded / ev.total;
                                        percent = parseFloat(percent).toFixed(2);
                                    $(‘.bgpro‘).css(‘width‘,percent + ‘%‘).html(percent + ‘%‘);
                    }
                };
                return xhr;
            },
        });

    });

    //自定义获取图片路径函数
    function getObjectURL(file) {
        var url = null ;
        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
            url = window.webkitURL.createObjectURL(file) ;
        }
        return url ;
    }
</script>

还可以进一步美化,比如说穿错了,可以做个ajax删除,重新传,相比来说就很easy了

获取到的数据:

参考网址:http://blog.csdn.net/a519640026/article/details/18090695

时间: 2024-12-04 18:26:08

利用jquery,html5实现图片预览实时上传的相关文章

前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome

在现在的Web开发中不可避免的会做一个图片预览的功能, 比如在上传图片的情况下,一个很简单的办法就是讲图片上传至服务器之后,再将文件的URL返回回来,然后异步通过这个URL加载刚刚上传的图片,实现图片的预览, 很明显的在这个过程中两次Web请求,一次发送文件,一次下载文件,到最后这个文件如果在客户端被删除(取消上传,弃用这次的上传), 这整个过程都白费了.我们希望能够在图片上传之前就能进行图片的预览,这样就避免了不必要的网络请求和时间等待. 在IE中有如下方式 var url; var file

js实现图片预览以及上传

HTML 代码: <input  type="file" id="fileid" onchange="filesize(this)" runat="server" size="80" Width="200px" Height="25px"/>  <input  type="hidden" id="hidden_s&quo

图片预览剪裁上传

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style> #mask { float: left; w

基于jQuery图文排版图片预览特效

基于jQuery图文排版图片预览特效.这是一款基于jQuery+CSS3实现的鼠标点击图片弹出画廊切换特效. 在线预览   源码下载 实现的代码. html代码: <div id="fullscreen"> <div id="fullscreen-inner"> <div id="fullscreen-inner-left" class="fullscreen-inner-button">&

小议头像预览裁剪上传的实现

在做头像上传的时候,浏览器默认是无法取得本地图片的,当然 HTML5 是可以的.不过IE6-8怎么破?目前比较通用的方案都是 flash 解决. 说道头像预览和裁剪,我最熟悉的就是 Discuz 的那个了,非常方便好用.不仅可以选择本地图片,还能直接调用摄像头拍摄,当然前提是你必须有个摄像头. 于是我心血来潮的想把他剥离出来给项目用,于是有就了此文..我就不说怎么提取怎么调用,就简单的谈谈他是怎么处理图片好了,反正不是我们想的那样,和我想的出入非常大. 这个插件呢,差不多分为四步处理:1. 前台

HTML5实现图片预览功能

两种方式实现 URL FileReader Index.jsp文件 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

图片选择,预览及上传

记得以前老师教我们写项目,要实现图片上传的功能,我们都是先用一个input选好图片,然后单独做一个提交图片的按钮,点击按钮,使用form表单提交到后台,然后通过 // 获取上传的文件 HttpPostedFileBase file = Request.Files[0]; 这一行来获取上传到后台的文件,然后来验证上传的文件是不是图片,其实在前台,通过设置input属性,就可以限制我们只能选择图片文件了,当然,后台的验证也是不能少的, // 设置accept属性,限制能选择的文件类型为图片 <inp

jquery.uploadView 实现图片预览上传

图片上传,网上有好多版本,今天也要做一个查了好多最终找到了一个uploadview 进行了一下修改 来看代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src=&quo

[转]HTML5 本地图片预览

[原文链接] https://www.huangwenchao.com.cn/2015/03/html5-image-preview.html 问题 加入我们在 HTML 里面有一个图片上传控件: <input id="upload_image" type="file" name="image" accept="image/*" /> 注意这个 accept="image/*" 非常重要,它指定