国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

關(guān)于手機(jī)端拍照上傳圖片的問(wèn)題

jifei / 2584人閱讀

摘要:關(guān)于移動(dòng)端拍照上傳圖片的解決方案場(chǎng)景產(chǎn)品要求用戶(hù)拍一張身份證和一張人像,然后后臺(tái)調(diào)用商用接口比對(duì)證件和人像的匹配度。缺點(diǎn)手機(jī)拍照?qǐng)D片過(guò)大,壓縮后,圖片依然大,沒(méi)上傳一次花費(fèi)時(shí)間過(guò)長(zhǎng),最后再調(diào)用接口比對(duì)時(shí)間花費(fèi)也長(zhǎng)。

關(guān)于移動(dòng)端拍照上傳圖片的解決方案

場(chǎng)景

產(chǎn)品要求用戶(hù)拍一張身份證和一張人像,然后后臺(tái)php調(diào)用商用接口比對(duì)證件和人像的匹配度。
方案1:使用上傳插件web-upload

證件和人像分別上傳到后臺(tái),然后返回圖片地址,前端回顯。

點(diǎn)擊核驗(yàn)按鈕,ajax再將返回的圖片地址傳到后臺(tái),后臺(tái)將地址轉(zhuǎn)成bases64,調(diào)用接口比對(duì),返回結(jié)果。

缺點(diǎn)

手機(jī)拍照?qǐng)D片過(guò)大,webupload壓縮后,圖片依然大,沒(méi)上傳一次花費(fèi)時(shí)間過(guò)長(zhǎng),最后再調(diào)用接口比對(duì)時(shí)間花費(fèi)也長(zhǎng)。

webupload的樣式需要重新定義

.webuploader-pick {
        display: inline-block;
        width: 1.6rem;
        height: 1.6rem;
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        background-color: transparent;
    }

webupload的input框沒(méi)辦法限制用戶(hù)只能調(diào)用攝像頭。(webupload加載完成后會(huì)生成一個(gè)input框,但是頁(yè)面加載后不能重新給input添加屬性,只有在上傳中才能獲取到).

方案2:使用原生的H5對(duì)象完成上傳

用戶(hù)點(diǎn)擊input按鈕,調(diào)用FileReader對(duì)象生成file.

利用canvas壓縮圖片,context進(jìn)行繪圖回顯。

再將base64碼dataURL轉(zhuǎn)為file.

利用FormData對(duì)象追加file.發(fā)送后臺(tái)。

后臺(tái)$_FILES接受后,轉(zhuǎn)為base64發(fā)送到接口,獲取結(jié)果。

缺點(diǎn)
1.流程稍顯復(fù)雜。
2.兼容性問(wèn)題。
   // 掃描身份證
        $(".input-card").on("change", function () {
            var oFReader = new FileReader();
            var card_files = document.getElementById("card-file").files[0];
            oFReader.readAsDataURL(card_files);
            oFReader.onloadend = function (oFRevent) {
                img = new Image();
                img.src = oFRevent.target.result;
                img.onload = function () {
                    // 獲取照片信息 等于6時(shí)照片會(huì)旋轉(zhuǎn)90°
                    var photo = getPhotoOrientation(img);
                    // 壓縮圖片
                    var compress_data = compress(img);
                    // 將圖片url轉(zhuǎn)為file類(lèi)型 (直接base64傳到后臺(tái)始終太大了)
                    card_img_file = dataURLtoFile(compress_data, "img.png");
                    $(".crad-img").attr("src", img.src);
                    //$("#compress_card").attr("src", imgfile);
                }
                // 太大就進(jìn)行壓縮
            }
        })
        
        // 圖片壓縮
        function compress(img) {
            canvas.width = img.width
            canvas.height = img.height
            //利用canvas進(jìn)行繪圖
            context.drawImage(img, 0, 0); // 重要
            //將原來(lái)圖片的質(zhì)量壓縮到原先的0.2倍。
            var data = canvas.toDataURL("image/jpeg", 0.1) //data url的形式
            return data
        }
          // base64 轉(zhuǎn)file
        function dataURLtoFile(dataurl, filename) {
            var arr = dataurl.split(","),
                mime = arr[0].match(/:(.*?);/)[1],
                bstr = atob(arr[1]),
                n = bstr.length,
                u8arr = new Uint8Array(n);
            while (n--) {
                u8arr[n] = bstr.charCodeAt(n);
            }
            return new File([u8arr], filename, {
                type: mime
            });
        }
        //獲取照片的元信息(拍攝方向)
        function getPhotoOrientation(img) {
            var orient;
            EXIF.getData(img, function () {
                orient = EXIF.getTag(this, "Orientation");
            });
            return orient;
        }
         //確定核驗(yàn)
        $("#saveDate").on("click", function () {
            var _token = $("meta[name="csrf-token"]").attr("content");
            var formData = new FormData();
            formData.append("_token", _token); // 追加token
            formData.append("order_room_id", order_room_id); // 追加其他項(xiàng)目參數(shù)
            formData.append("face_img_file", face_img_file); // 追加文件
            formData.append("card_img_file", card_img_file);
            msg = layer.open({
                type: 2,
                content: "核驗(yàn)中"
            });
            $.ajax({
                url: "/check-in/ajax-real",
                type: "post",
                data: formData,
                cache: false,
                processData: false, // 必填參數(shù)
                contentType: false, // 必填參數(shù)
                async: false,
                dataType: "json",
                success: function (data) {
                    layer.close(msg);
                    if (data.status == "success") {
                        layer.open({
                            content: data.msg,
                            skin: "msg",
                            time: 2,
                            end: function (layero, index) {
                                // 跳轉(zhuǎn)table頁(yè)
                                window.location.href =
                                    "{{Route("check.table",["num"=>$total_num,"order_room_id"=>$order_room_id])}}";
                            }
                        });
                    } else {
                        layer.open({
                            content: data.msg,
                            skin: "msg",
                            time: 3
                        });
                    }
                }

            });
        })

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/31445.html

相關(guān)文章

  • 微信JSSDK 實(shí)現(xiàn)打開(kāi)攝像頭拍照再將相片保存到服務(wù)器

    摘要:在微信端打開(kāi)手機(jī)攝像頭拍照,將拍照?qǐng)D片保存到服務(wù)器上需要使用到微信的接口,主要使用到了拍照或從手機(jī)相冊(cè)中選圖接口上傳圖片接口參考資料一引入微信二通過(guò)接口注入權(quán)限驗(yàn)證配置三微信端拍照接口默認(rèn)可以指定是原圖還是壓縮圖,默認(rèn)二者都有可以指 在微信端打開(kāi)手機(jī)攝像頭拍照,將拍照?qǐng)D片保存到服務(wù)器上需要使用到微信的JSSDK接口,主要使用到了拍照或從手機(jī)相冊(cè)中選圖接口(chooseImage),上傳...

    yy13818512006 評(píng)論0 收藏0
  • 移動(dòng)圖片上傳旋轉(zhuǎn)、壓縮解決方案

    摘要:上傳的文件經(jīng)過(guò)就可以實(shí)現(xiàn)預(yù)覽圖片了,這方面不清楚的可以查看進(jìn)階系列文件上傳下載旋轉(zhuǎn)旋轉(zhuǎn)需要用到的方法。 前言 在手機(jī)上通過(guò)網(wǎng)頁(yè) input 標(biāo)簽拍照上傳圖片,有一些手機(jī)會(huì)出現(xiàn)圖片旋轉(zhuǎn)了90度d的問(wèn)題,包括 iPhone 和個(gè)別三星手機(jī)。這些手機(jī)豎著拍的時(shí)候才會(huì)出現(xiàn)這種問(wèn)題,橫拍出來(lái)的照片就正常顯示。因此,可以通過(guò)獲取手機(jī)拍照角度來(lái)對(duì)照片進(jìn)行旋轉(zhuǎn),從而解決這個(gè)問(wèn)題。 Orientatio...

    blair 評(píng)論0 收藏0
  • H5拍照、預(yù)覽、壓縮、上傳采坑記錄

    摘要:拍照預(yù)覽壓縮上傳采坑記錄公司項(xiàng)目前段時(shí)間需要實(shí)現(xiàn)手機(jī)拍照上傳的功能,本來(lái)以為用和可以很輕松的實(shí)現(xiàn),結(jié)果發(fā)現(xiàn)問(wèn)題多多,特此記錄下來(lái)。完整代碼如下如果不支持壓縮,直接上傳原始圖片組裝二進(jìn)制組裝參考文章 H5拍照、預(yù)覽、壓縮、上傳采坑記錄 公司項(xiàng)目前段時(shí)間需要實(shí)現(xiàn)手機(jī)拍照上傳的功能,本來(lái)以為用createObjectURL和canvas可以很輕松的實(shí)現(xiàn),結(jié)果發(fā)現(xiàn)問(wèn)題多多,特此記錄下來(lái)。 DE...

    gself 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<