გავაკეთე როგორც მაწყობდა, მაშასადამე ამ შემთხვევაში ლინკითაა ვიდეო მაგრამ შეიძლება ცოტა ხელისშევლება როდესაც ვიდეოს ატვირთავ, აურჩევ სასურველ კადრს და დააწვები Snap Photo_ს და upload_data.php სერვერზე upload საქაყალდეში შეინახავს ჩაქეშილ tumbnail_ს.
Z3R0 მადლობა მეგობარო, ცვლილებებს შევიტან და ახალ თემაში დავდებ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload Canvas Data to PHP Server</title>
</head>
<html>
<body>
<video controls>
<source src="
http://localhost/1.mp4" type="video/mp4"></source>
</video>
<canvas id="canvas" width="640" height="480"></canvas>
<button id="snap" onclick="snap()">Snap Photo</button>
<!-- start the script ... within that declare variables as follows... -->
<script>
var video=document.querySelector('video');
var canvas=document.querySelector('canvas');
var context=canvas.getContext('2d');
var w,h,ratio;
//add loadedmetadata which will helps to identify video attributes
video.addEventListener('loadedmetadata', function() {
ratio = video.videoWidth/video.videoHeight;
w = video.videoWidth-100;
h = parseInt(w/ratio,10);
canvas.width = w;
canvas.height = h;
},false);
function snap() {
context.fillRect(0,0,w,h);
context.drawImage(video,0,0,w,h);
}
</script>
<h1>Upload Canvas Data to PHP Server</h1>
<canvas width="80" height="80" id="canvas">canvas</canvas>
<script type="text/javascript">
window.onload = function() {
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
context.rect(0, 0, 80, 80);
context.fillStyle = 'yellow';
context.fill();
}
</script>
<div>
<input type="button" onclick="uploadEx()" value="Upload" />
</div>
<form method="post" accept-charset="utf-8" name="form1">
<input name="hidden_data" id='hidden_data' type="hidden"/>
</form>
<script>
function uploadEx() {
var canvas = document.getElementById("canvas");
var dataURL = canvas.toDataURL("image/png");
document.getElementById('hidden_data').value = dataURL;
var fd = new FormData(document.forms["form1"]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'upload_data.php', true);
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
var percentComplete = (e.loaded / e.total) * 100;
console.log(percentComplete + '% uploaded');
alert('Succesfully uploaded');
}
};
xhr.onload = function() {
};
xhr.send(fd);
};
</script>
</body>
</html>
upload_data.php
<?php
$upload_dir = "upload/";
$img = $_POST['hidden_data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = $upload_dir . mktime() . ".png";
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>