使用html5 FileReader获取图片,并异步上传到服务器 不使用iframe

               

使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)


原理:

1.使用FileReader 读取图片的base64编码

2.使用ajax,把图片的base64编码post到服务器。

3.根据接收到post的数据分析图片的类型(jpg,gif,png),并把base64_decode后的数据生成对应类型的图片文件。


html:

<!DOCTYPE HTML PUBLIC><html> <head>  <meta charset="utf-8">  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>  <title>使用html5 FileReader获取图片,并异步上传到服务器(not iframe)</title>  <style type="text/css">    body{margin: 0px; background:#f2f2f0;}    p{margin:0px;}    .title{color:#FFFF00; background:#000000; text-align:center; font-size:24px; line-height:50px; font-weight:bold;}    .file{position:absolute; width:100%; font-size:90px;}    .filebtn{display:block; position:relative; height:110px; color:#FFFFFF; background:#06980e; font-size:48px; line-height:110px; text-align:center; cursor:pointer; border: 3px solid #cccccc;}    .filebtn:hover{background:#04bc0d;}    .showimg{margin:10px auto 10px auto; text-align:center;}  </style>  <script type="text/javascript">  window.onload = function(){    // 选择图片    document.getElementById('img').onchange = function(){        var img = event.target.files[0];        // 判断是否图片        if(!img){            return ;        }        // 判断图片格式        if(!(img.type.indexOf('image')==0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name)) ){            alert('图片只能是jpg,gif,png');            return ;        }        var reader = new FileReader();        reader.readAsDataURL(img);        reader.onload = function(e){ // reader onload start            // ajax 上传图片            $.post("server.php", { img: e.target.result},function(ret){                if(ret.img!=''){                    alert('upload success');                    $('#showimg').html('<img src="' + ret.img + '">');                }else{                    alert('upload fail');                }            },'json');        } // reader onload end    }  }  </script> </head> <body>  <p class="title">使用html5 FileReader获取图片,并异步上传到服务器(not iframe)</p>  <p><input type="file" class="file" id="img"><label class="filebtn" for="img" title="JPG,GIF,PNG">请选择图片</label></p>  <p class="showimg" id="showimg"></p> </body>  </html>

server.php

<?php$img = isset($_POST['img'])? $_POST['img'] : '';// 获取图片list($type, $data) = explode(',', $img);// 判断类型if(strstr($type,'image/jpeg')!=''){    $ext = '.jpg';}elseif(strstr($type,'image/gif')!=''){    $ext = '.gif';}elseif(strstr($type,'image/png')!=''){    $ext = '.png';}// 生成的文件名$photo = time().$ext;// 生成文件file_put_contents($photo, base64_decode($data), true);// 返回header('content-type:application/json;charset=utf-8');$ret = array('img'=>$photo);echo json_encode($ret);?>


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值