我对如何将base64上载到文件夹路径感到困惑。这是我的代码:
var img = document.createElement('img') || document.querySelector('img');
var context;
var width = video.offsetWidth
, height = video.offsetHeight;
canvas = canvas || document.createElement('canvas');
canvas.width = width;
canvas.height = height;
context = canvas.getContext('2d');
context.drawImage(video, 0, 0, width, height);
img.src = canvas.toDataURL('image/png');
document.body.appendChild(img);
答案 0 :(得分:0)
在我的代码中,我使用了它并且有效:
$picture = rtrim(strtr(base64_encode($_FILES['userfile']['name']), '+/', '-_'), '=');
查看:
img src=" echo base_url(). 'admin/assets/uploads/product/'.$product['userfile'];" alt="img" class = "img-thumbnail rounded float-left image-product"
答案 1 :(得分:0)
您要做的就是将图像数据传递到PHP文件,以通过此功能base64_decode($data);
对其进行解码,将数据保存到图像中,$data
是您的图像数据。
您可以通过将数据存储在HTML的隐藏输入中来传递数据
首先,进行隐藏的输入:
<form name="myForm" id="myForm" method="post" action="">
<input name="hidden_data" id='hidden_data' type="hidden"/>
</form>`
然后通过此js代码
document.getElementById('hidden_data').value = canvas.toDataURL('image/png');
在这里您可以通过提交表单数据将此数据传递给PHP
var form = document.getElementById("myForm");
form.submit();
在PHP中,您可以通过首先解码图像base64数据来保存文件:
if(isset($_POST['hidden_data']){
$img = $_POST['hidden_data'];
//Extracting the base64 data from the passed string
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
//Decoding the image data
$data = base64_decode($img);
//Choosing file name based on current time (unique name)
$fileName = mktime() . ".png";
$upload_dir = "./MyImages";
$file = $upload_dir . $fileName;
$success = file_put_contents($file, $data);
if($success){
echo "Image Saved";
}else{
echo "Couldn't Save Image";
}
}
您可以选择另一种传递数据的方式,例如AJAX GET请求或其他方法,但是您知道了。