程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> HTML5開發筆記:初窺CANVAS,上傳canvas圖片到服務器,

HTML5開發筆記:初窺CANVAS,上傳canvas圖片到服務器,

編輯:關於PHP編程

HTML5開發筆記:初窺CANVAS,上傳canvas圖片到服務器,


項目做到一個裁切圖片的功能,就是讓用戶上傳頭像的時候可以裁切一下圖片,選擇一個合適大小位置來作為頭像。之中用到了crop.js這個插件,用canvas直接繪制了用戶裁切縮放後的圖片。裁切的過程這邊就不詳細展開了,想要了解詳情的朋友可以深入了解一下crop.js插件,這邊分享一下在生成canvas圖片後,通過ajax來上傳到服務器的一個過程。就以PHP為例:

<script>
var canvas = document.getElementById("canvas_img");
var img = canvas.toDataURL();
var ajax = null;
 
if (window.XMLHttpRequest) {
    ajax = new XMLHttpRequest();
} else {
    ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
ajax.onreadystatechange = function() {
    if (ajax.readyState == 4 && ajax.status == 200) {
    alert(ajax.responseText);
    }
}
ajax.open("POST", "save.php", true);
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.send("img=" + img);
</script>
<?php
    define('UPLOAD_DIR', dirname(__FILE__).'/');       //圖片保存路徑 
    $img = $_POST['img'];
    $img = str_replace('data:image/png;base64,', '', $img);
    $img = str_replace(' ', '+', $img);
    $data = base64_decode($img);
    $day = date("Ymd",time());
    $file_name = mt_rand(1000000000000000,9999999999999999);
    if(!is_dir(UPLOAD_DIR . $day)){
        mkdir(UPLOAD_DIR . $day);
    }
    $file = UPLOAD_DIR . $day."/".$file_name. '.png';
    $success = file_put_contents($file, $data);
    return $success;
?>

通過ajax傳輸的方式,讓服務器收到這整個圖片文件的內容,然後寫進文件裡,就有了我們所謂的‘上傳圖片’的效果了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved