【发布时间】:2020-01-28 07:42:43
【问题描述】:
我是PHP 和Ajax query 的初学者。我正在尝试使用croppie.js plugin 上传profile image。当我上传image 时,图像会像1580192100.png 一样保存。但我的问题是,根据userid,retrieve the image 是不可能的。
这是我尝试过的代码。 profilepic.php页面
<?php
session_start();
require_once "../auth/dbconnection.php";
if (isset($_POST['image'])) {
$croped_image = $_POST['image'];
list($type, $croped_image) = explode(';', $croped_image);
list(, $croped_image) = explode(',', $croped_image);
$croped_image = base64_decode($croped_image);
$image_name = time().'.png';
// Valid file extensions
$allowTypes = array( 'bmp', 'jpg', 'png', 'jpeg' , 'JPG');
// if(in_array($fileType, $allowTypes)){
$stmt = $conn->prepare("UPDATE users SET image = ? WHERE user_id= ?");
$stmt->bind_param("si", $image_name, $_SESSION['user_id']);
$stmt->execute();
if($stmt->affected_rows === 0);
file_put_contents('blog/'.$image_name, $croped_image);
echo 'Cropped image uploaded successfully.';
}else{
echo "ERROR: Could not prepare query: $stmt. " . mysqli_error($conn);
}
$stmt->close();
// mysqli_stmt_close($stmt);
?>
php fetch 代码是;
<?php
require_once 'auth/dbconnection.php';
$sql="SELECT image FROM users WHERE user_id= '".$_SESSION['user_id']."'";
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$out= '<img src="data:image/png;base64,'.base64_encode($row['image']).'" alt="">';
echo $out;
}
}
}
?>
我不知道我哪里错了。请帮帮我。
【问题讨论】:
-
请澄清问题。您是否希望使用
$userid而不仅仅是时间来保存图像? -
@RamRaider 检索
image时出现问题 -
@NasikThaheed 你得到
$_SESSION['user_id']和$row['image']的值了吗?你也错过了图像的路径。 -
@DroidDev 当然。我得到了价值..
-
@NasikThaheed 你能在浏览器中查看图片吗?
http://example.com/images/1580196780.png带有完整路径。
标签: javascript php mysql ajax croppie