[英]How to create and save image to a website folder from a base64 encoded data/string using PHP
我的php文件中運行以下代碼,效果很好,它解碼了base64字符串並將其顯示為網頁上的圖像,但我也希望它也將其保存在文件夾中。
<?php
$base = $_POST['encoded'];
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
我已經嘗試過這些鏈接上描述的解決方案,但是這些都不適合我
可以將這張圖片保存到文件夾的多余代碼行是什么
$base = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
.'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
.'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
.'8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
代碼對我有用。
如果看到空白頁,則表示編碼的字符串不正確。
文件權限未設置為寫入模式。 將其設置為777並使用以下代碼進行測試。
<?php
$base = $_POST['encoded'];
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im,'image.png'); // saving image to the same directory
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
此代碼適用於JPEG圖像
$data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHB'; // image data
define('UPLOAD_DIR','dir_path/'); // image dir path
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data); // base 64 decoding
file_put_contents(UPLOAD_DIR.$img_name.".jpeg", $data); // saving the image to required path
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.