亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

html轉image--通過html2canvas在瀏覽器端處理

2024-04-27 15:05:11
字體:
來源:轉載
供稿:網友

將html顯示截取成圖片保存,可以在服務器端實現(這種方式的實現和缺點在另一篇博客中介紹了),同樣也可以在瀏覽器端實現;在瀏覽器端實現無疑減少的服務器壓力。

在瀏覽器實現需要借助第三方 html2canvas,它的使用方式請參考鏈接。

http://codepedia.info/convert-html-to-image-in-jquery-div-or-table-to-jpg-png/

核心流程

1,Download and import HTML2Canvas jquery files.2,Add HTML markup.3,jQuery Code: Button click convert HTML to Canvas.4,jQuery Code: Download HTML to IMAGE.

整個實現流程:

screenshot->get image binary->image binary to blob object-> blob object to file object->upload

<style>.size-table-page { overflow:hidden; max-width:1100px;margin:20px 100px; }.size-table-page .screenshot-div { display:inline-block; }.size-table-page table { background-color:#fff; }.size-table-page table tr td { width:60px; max-width:10%; height:30px; line-height:30px; text-align:center; font-size:13px; padding:3px 6px; border:1px solid #000; }.size-table-page table tr:first-child td { font-weight:bold; font-size:14px;}.size-table-page table .td-bold { font-weight:bold; font-size:14px;}</style><div class="size-table-page">    <div class="screenshot-div">        <table>            <tbody>                <tr>                    <td class="td-bold">尺寸</td>                    <td >肩寬</td>                    <td >袖長</td>                    <td >下擺</td>                    <td >總長</td>                </tr>                <tr>                    <td class="td-bold">S</td>                    <td >100</td>                    <td >110</td>                    <td >120</td>                    <td >130</td>                </tr>                <tr>                    <td class="td-bold">M</td>                    <td >120</td>                    <td >130</td>                    <td >140</td>                    <td >150</td>                </tr>                        </tbody>        </table>        <div style="width:100px;height:10px;">&nbsp;</div><!-- 尺碼表圖片和下面的商品詳情圖片留白用,如果不需要的話,直接截取table的就行了 -->    </div>    <div style="margin-top: 30px;position:fixed;bottom:50px;right:50px"><!--        <a id="btn-convert-html2image" href="#">下載圖片到本地</a> -->        <input type="button" class="btn btn-blue btn-small" value="上傳至服務器" onclick="uploadSizeTabelImage();">    </div></div><div id="division_area" style="display:none;"></div><script type="text/javascript" src="/xxxxx/js/html2canvas.js"></script><script type="text/Javascript">var element = $(".screenshot-div");var getCanvas;jQuery(document).ready(function(){    html2canvas(element, {        onrendered: function (canvas) {               getCanvas = canvas;            }        });});// $("#btn-convert-html2image").on('click', function () {//     var imgageData = getCanvas.toDataURL("image/png");//     var newData = imgageData.replace(/^data:image//png/, "data:application/octet-stream");//     $("#btn-convert-html2image").attr("href", newData)//     $("#btn-convert-html2image").attr("download", "size_table.png");// });function uploadSizeTabelImage(){//  var imgageData = getCanvas.toDataURL("image/jpeg", 1.0);//  var imgageData = getCanvas.toDataURL("image/png");//  var imgageData = getCanvas.toDataURL();//default is image/png    var dataURL = getCanvas.toDataURL("image/png");    var blobBin = atob(dataURL.split(',')[1]);    var array = [];    for(var i = 0; i < blobBin.length; i++) {        array.push(blobBin.charCodeAt(i));    }    var file=new Blob([new Uint8Array(array)], {type: 'image/png'});    var generatedFile = new File([file], "test.png", {type: 'image/png'}); //test.png 對應后臺$_FILES['up']['name'] 用作設定圖片的后綴名    var params = {        'up' : generatedFile    }    jQuery('.size-table-page').mask('Uploading...');    fileUploadXhr({        url: '/PRoduct.php'        , type: 'POST'        , cache: false        , dataType : 'json'        , resetForm : true        , clearForm : true        , includeHidden : false//      , uploadProgress : function(e, position, total, percent) { console.log(total + " : " + percent); }        , success : function(obj, status, xhr) {            jQuery('.size-table-page').unmask();            alert('上傳成功');            window.close();        }        , error : function(xhr, status, error) {            jQuery('.size-table-page').unmask();            alert('上傳失敗.');        }    }, params);}

function fileUploadXhr(options, params) {    var formdata = new FormData();    for(i in params) {        formdata.append(i, params[i]);    }    var s = jQuery.extend(true, {}, jQuery.AjaxSettings, options, {        contentType: false,        processData: false,        cache: false,        type: options.type    });    if (options.uploadProgress) {        // workaround because jqXHR does not expose upload property        s.xhr = function() {            var xhr = jQuery.ajaxSettings.xhr();            if (xhr.upload) {                xhr.upload.addEventListener('progress', function(event) {                    var percent = 0;                    var position = event.loaded || event.position; /*event.position is deprecated*/                    var total = event.total;                    if (event.lengthComputable) {                        percent = Math.ceil(position / total * 100);                    }                    options.uploadProgress(event, position, total, percent);//                    log(total + " : " + percent);                }, false);            }            return xhr;        };    }    s.data = null;    var beforeSend = s.beforeSend;    s.beforeSend = function(xhr, o) {        //Send FormData() provided by user        if (options.formData) {            o.data = options.formData;        }        else {            o.data = formdata;        }        if(beforeSend) {            beforeSend.call(this, xhr, o);        }    };    return jQuery.ajax(s);}

</script>

備注:

這種方式提交的時候,不同的域名間提交數據會發生如下問題:已攔截跨源請求:同源策略禁止讀取位于 xxxxxxxxx的遠程資源。(原因:CORS 頭缺少 'access-Control-Allow-Origin')。題主所說的跨域問題需要在提供服務的后端解決,前端是無法解決的。需要在后端設置responce的HEAD中Access-Control-Allow-Origin,設置允許跨域的域名。跨域是需要前后端一同協作的。  解決方案,在file服務器上傳文件的開頭添加如下代碼.    if(isset($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'], array('域名'))) {        header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_ORIGIN']."/r/n");        header("Access-Control-Allow-Methods: POST/r/n");        header("Access-Control-Max-Age: 86400/r/n");    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲无限av看| 影音先锋欧美精品| 亚洲一区亚洲二区| 91网在线免费观看| 亚洲国产小视频在线观看| 136fldh精品导航福利| 色狠狠久久aa北条麻妃| 日韩欧美在线中文字幕| 欧美性20hd另类| 国产精品美女久久久久av超清| 国产精品观看在线亚洲人成网| 欧美视频免费在线观看| 正在播放欧美一区| 国产日韩欧美另类| 九九精品视频在线| 欧美最顶级的aⅴ艳星| 久久天天躁日日躁| 伊人亚洲福利一区二区三区| 国产成人精品a视频一区www| 青青草99啪国产免费| 中文字幕久热精品视频在线| 97精品国产97久久久久久免费| 国产精品96久久久久久又黄又硬| 亚洲国产日韩精品在线| 国内精品久久久久| 亚洲女人天堂视频| 在线观看国产精品91| 在线观看日韩www视频免费| 亚洲性日韩精品一区二区| 国产亚洲一区二区精品| 日韩免费在线观看视频| 日韩中文字幕国产精品| 中文精品99久久国产香蕉| 日韩美女免费视频| www.亚洲免费视频| 国产97人人超碰caoprom| 欧美香蕉大胸在线视频观看| 国产精品小说在线| 国产精品丝袜高跟| 久久视频这里只有精品| 日韩欧美高清在线视频| 日韩免费视频在线观看| 成人情趣片在线观看免费| 日韩在线视频二区| 欧美野外wwwxxx| 久久久99免费视频| 国产a∨精品一区二区三区不卡| 亚洲国产欧美日韩精品| 久久在线观看视频| 另类少妇人与禽zozz0性伦| 亚洲aⅴ日韩av电影在线观看| 亚洲美女激情视频| 国产婷婷成人久久av免费高清| 日韩av在线免费观看| 国产成人精品视频| 日本不卡免费高清视频| 欧美亚洲日本黄色| 91在线视频精品| 日韩精品一区二区视频| 欧美黑人国产人伦爽爽爽| 亚洲精品乱码久久久久久按摩观| 91色中文字幕| 国产日韩在线精品av| 国产偷亚洲偷欧美偷精品| 久久久久久久久久久久av| 视频直播国产精品| 中文字幕精品www乱入免费视频| 日韩网站免费观看高清| 国产99视频精品免视看7| 欧美激情久久久久久| 亚洲图片欧美日产| 亚洲成人久久网| 国产欧美在线视频| 国产精品一区二区三| 欧美极度另类性三渗透| 自拍偷拍免费精品| 全色精品综合影院| 日本亚洲欧洲色| 成人免费在线网址| 日韩av片电影专区| 亚洲电影第1页| 4438全国成人免费| 国产色综合天天综合网| 国产成人jvid在线播放| 成人福利网站在线观看11| 亚洲电影中文字幕| 国产美女扒开尿口久久久| 欧美电影电视剧在线观看| 久久精品免费播放| 成人免费网站在线观看| 欧美日韩亚洲精品一区二区三区| 久久久国产精彩视频美女艺术照福利| 欧美精品在线播放| 性亚洲最疯狂xxxx高清| 久久在线视频在线| 欧美日韩综合视频网址| 国产一区二区av| 青草青草久热精品视频在线网站| 国产一区二区欧美日韩| 国产精品视频yy9099| 国产成人精品在线视频| 亚洲精品xxx| 国产福利精品在线| 久久亚洲国产精品| 欧美国产日韩一区二区三区| 国精产品一区一区三区有限在线| 欧美自拍大量在线观看| 亚洲成人黄色在线观看| 久久久国产一区二区三区| 欧美在线激情网| 久久人人爽人人爽人人片av高请| 亚洲欧洲在线播放| 国产欧美日韩中文| 日韩美女激情视频| 久久久久久久久久久久久久久久久久av| 久久综合88中文色鬼| 国产精品日韩专区| 欧美激情视频网| 日韩精品免费在线视频| 91视频免费在线| 国产精品中文字幕在线| 欧美第一黄色网| 日韩精品有码在线观看| 亚洲日本成人女熟在线观看| 国产免费一区二区三区在线能观看| 久久久精品2019中文字幕神马| 国产在线精品一区免费香蕉| 亚洲色图欧美制服丝袜另类第一页| 亚洲欧洲日韩国产| 日韩av123| 欧美电影免费观看高清完整| 欧美日韩综合视频网址| 欧美国产日韩免费| 亚洲欧美在线免费观看| 久久免费视频在线| 性色av一区二区三区免费| 久青草国产97香蕉在线视频| 精品自拍视频在线观看| 日韩av影视在线| 欧美精品免费在线观看| 欧美国产日韩免费| 亚洲日本欧美日韩高观看| 日韩成人中文字幕在线观看| 亚洲视频国产视频| 久久久久久欧美| 欧美日韩在线视频观看| 欧美在线免费观看| 亚洲国产精品国自产拍av秋霞| 欧美午夜片在线免费观看| 久久精品成人一区二区三区| 国产精品美女网站| 国产精品夜色7777狼人| 成人信息集中地欧美| 日韩精品中文字幕久久臀| 这里只有精品丝袜| 亚洲人成毛片在线播放| 日韩av手机在线看| 日韩成人在线免费观看| 亚洲人成网站在线播| 久久九九免费视频| 久久久久久久av| 中文字幕欧美日韩精品| 久久久久国产精品www| 在线视频免费一区二区|