#javascript #php #html #base64
#javascript #php #HTML #base64
Вопрос:
Я не понимаю, как загрузить этот 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);
Ответ №1:
В моем коде я использовал это, и это сработало:
$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. пожалуйста, я просто новичок в html, мне нужен полный скрипт ‘-‘
2. извините, я использую только этот код в своем проекте для загрузки изображения с использованием base64, и он работал … не в состоянии предоставить вам весь код проекта
Ответ №2:
Все, что вам нужно сделать, это передать данные вашего изображения в файл 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 или что-то в этом роде, но вы поняли идею.