• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    在網站WEB端及封裝APP網站做手機上傳圖片預覽特別是蘋果手機選擇圖片時,有拍照圖片選擇,一般HTML file表無法獲得用戶臨時拍照的圖片,這時可以用html5+jquery+canvas來實現,廢話不多說貼代碼。

        (function($){
                $.fn.extend({
                    aiiUpload:function(obj)
                    {
                        if(typeof obj !="object")
                        {
                            alert('參數錯誤');
                            return;
                        }
                        var imageWidth,imageHeight;
                        var base64;
                        var file_num=0;
                        var fileInput=$(this);
                        var fileInputId=fileInput.attr('id');
                        createDoc('#'+fileInputId,obj.method,obj.action);
                        $('#aii_file').change(function(){
                            if(test(this.value)==false)
                            {
                                alert('格式錯誤');
                                return;
                            }
                            var objUrl = getObjectURL(this.files[0]);
                            if (objUrl) 
                            {
                                imgBefore(objUrl,file_num);
                                render(objUrl,obj.max_h,obj.max_w,file_num);
                                file_num++;
                            }
                        });
                    }
                });
                function createDoc(objID,form_method,form_action)
                {
                    var element=$(objID);
                    element.append('<ul class="viewList"></ul>').append('<div class="fileBox"><input type="file"  id="aii_file" /><div class="file_bg"></div></div>').append('<form id="aii_upload_form" method="'+form_method+'" action="'+form_action+'"></form>').append('<canvas id="canvas"></canvas>');
                }
                function test(value)
                {
                    var regexp=new RegExp("(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png)$",'g');
                    return regexp.test(value);
                }
                function render(src,MaximgW,MaximgH,idnum)
                {
                    var image=new Image();
                    image.onload=function()
                    {
                        var canvas=document.getElementById('canvas');
                        if(image.width>image.height)
                        {
                            imageWidth=MaximgW;
                            imageHeight=MaximgH*(image.height/image.width);
                        }
                        else if(image.width<image.height)
                        {
                            imageHeight=MaximgH;
                            imageWidth=MaximgW*(image.width/image.height);
                        }
                        else
                        {
                            imageWidth=MaximgW;
                            imageHeight=MaximgH;
                        }
                        canvas.width=imageWidth;
                        canvas.height=imageHeight;
                        var con=canvas.getContext('2d');
                        con.clearRect(0,0,canvas.width,canvas.height);
                        con.drawImage(image,0,0,imageWidth,imageHeight);
                        base64=canvas.toDataURL('image/jpeg',0.5).substr(22);
                        add_doc(base64,idnum);
                    }
                    image.src=src;
                };
                //建立一個可存取到該file的url
                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 ; 
                }
                //預覽
                function imgBefore(objUrl,idnum) 
                {
                    var li='<li class="view"><img src="'+objUrl+'" id="aiiImg_'+idnum+'" idnum="'+idnum+'" /><div class="close" onclick="img_remove(this);"></div></li>'
                    $('.viewList').append(li);
                    var img=$('#aiiImg_'+idnum);
                    //預覽圖片居中 填滿 代碼
                    console.log('asdfasdfasdf');
     
                    img.load(function(){
                        var imgw=img.width(),
                            imgh=img.height();
                            console.log(imgw);
                            console.log(imgh);
                        if(imgw>imgh)
                        {
                            img.css('height','100%');
                            img.css('width','auto');
                            img.css('marginLeft',-(img.width()-img.height())/2+'px');
                        }
                        else if(imgw<imgh)
                        {
                            img.css('width','100%');
                            img.css('height','auto');
                            img.css('marginTop',-(img.height()-img.width())/2+'px');
                        }
                    });
                }
     
                function add_doc (base,idnum)
                {
                    $('#aii_upload_form').append('<input type="hidden" name="img[]" id="f_'+idnum+'" value="'+base+'"/>');
                }
            })(jQuery);
            function img_remove(element)
            {
                var num=$(element).prev().attr('idnum');
                $(element).parent().remove();
                $('#f_'+num).remove();
                console.log('asdf');
            }
     

    以上是需要用到的JQUERY 下面是調用該jquery及我們點擊上傳圖片并預覽圖片代碼

    <section class="section">  

        <div id="box"></div> 
        <p style="color:red;">*樣式修改請參考aiiUpload.css</p>
    </section>  
     
    <script type="text/javascript">  
        $('#box').aiiUpload({  
            method:'POST',  
            action:'form.php',  
            max_h:300,  
            max_w:300,  
            subText:'上傳圖片',  
            fileText:'選擇圖片'  
        });  
    </script>  
    查找 “add_doc(base64,idnum);”我們可以在上面添加自己的Ajax代碼如
    $.post("action.php?user_id={$user_id}&member_user=member_img",{base64:base64},function(msg){  })
    其中“base64”是我們的圖片文件,然后我們需要在PHP程序中處理獲取到的圖片文件
    $base64 = $_REQUEST['base64'];  //獲取圖片碼
    $IMG = base64_decode($base64);  //將獲取到的圖片碼轉義
     
    $rand = rand(100, 999);
    $pics_tow = date("YmdHis") . $rand . '.png';  //進行文件重命名
    $pic_path_tow = "files/". $pics_tow;   //文件路徑控制
    file_put_contents($pic_path_tow, $IMG);  //將轉義過的字符串寫入指定路徑下
    將我們獲取到的文件名進行數據操作!
    這樣從手機拍照的圖片就可以獲取并存入服務器及數據庫中了!

     

    穩定

    產品高可用性高并發

    貼心

    項目群及時溝通

    專業

    產品經理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質開發
    • 返回頂部
    最新国产在线精品观看| 日韩吃奶摸下AA片免费观看| 91精品国产自产在线观看高清| 国产午夜精品久久久久免费视 | 国产99视频精品一区| 亚洲av成人无码久久精品| 在线中文字幕精品第5页| 午夜精品一区二区三区在线观看| 久久精品无码一区二区日韩AV | 热久久综合这里只有精品电影| 99久久综合国产精品免费| 久久精品国产久精国产一老狼| 麻豆亚洲AV永久无码精品久久| 久久久久国产精品| 99精品国产高清一区二区三区| 精品国产亚洲男女在线线电影| 第一福利永久视频精品| 日韩免费在线观看| 日韩去日本高清在线| 日韩成人免费视频| 久久综合日韩亚洲精品色| 日韩AV影院在线观看| 国产乱人伦真实精品视频| 国产精品亚洲专区在线播放| 无码人妻精品一二三区免费| 亚洲国产成人久久精品大牛影视| 一色屋成人免费精品网站| 国产成人精品久久二区二区| 久久久久久精品免费看SSS| 亚洲精品不卡视频| 67194老司机精品午夜| 2020国产精品视频| 91精品国产高清久久久久久91| 麻豆一区二区三区精品视频| 精品偷自拍另类在线观看| 精品亚洲国产成AV人片传媒| 91精品一区二区三区久久久久| 麻豆精品久久久久久久99蜜桃| 久久精品国产亚洲AV蜜臀色欲 | 国产精品午夜福利在线无码| 国产精品一区三区|