php mysql 图像,php - 使用PHP和MySQL将图像插入db - SO中文参考 - www.soinside.com

在PHP中,用户尝试通过profile.php页面上传个人资料图像到数据库。当前的代码能够成功将图像上传到服务器文件夹,但在插入数据库时遇到问题。代码检查了上传的图像类型,并确保文件大小合适,然后生成一个唯一的文件名以防数据库中已存在相同名称的图像。然而,图像并未实际存储到数据库的imagePath列中。
摘要由CSDN通过智能技术生成

我有一个用户仪表板,我试图在其中允许用户上传自己的个人资料图像。目前,在profile.php页面中,我有一个简单的if语句,该语句表示如果imagePath列下的db内部没有图片,则显示默认缩略图else,并显示用户图像。

以下脚本将正确的映像上载到PC上的物理文件夹中,但没有上载到DB中。如果有人可以清楚地看到没有发生这种情况,请告诉我。

另一个问题是它正在使用我认为的$imageNewName创建新文件名,如果数据库中已经存在相同的图像名,这只会为该图像创建一个新名称?

profile.php:

Profile Picture:

$picture = $row['imagePath'];

if (empty($picture)){

echo "no-image.png";

} else {

echo "%22.%24row%5B";

};

?>

Upload / Edit Picture

scripts / edit-picture.php<?php

if (isset($_POST['edit-picture'])) {

require '../header.php';

$studentID = $_SESSION['studentID'];

$image = $_FILES['image'];

$imageName = $_FILES['image']['name'];

$imageTempName = $_FILES['image']['tmp_name'];

$imageSize = $_FILES['image']['size'];

$imageError = $_FILES['image']['error'];

$imageType = $_FILES['image']['type'];

$imageExt = explode('.', $imageName);

$imageRealExt = strtolower(end($imageExt));

$fileExtAllow = array('jpg', 'jpge', 'png');

if(in_array($imageRealExt, $fileExtAllow)) {

if ($imageError === 0 ){

if($imageSize < 6000000){

$imageNewName = uniqid('', true).".".$imageRealExt;

$filePath = '../profiles/'.$imageNewName;

move_uploaded_file($imageTempName, $filePath);

$stmt = $conn->prepare ("INSERT INTO `profileImage` (`imageID`, `imagePath`, `studentID`) VALUES (NULL, ?, ?) ");

$stmt->bind_param("si", $filePath, $studentID);

$stmt->execute() or die("Failed to insert image into the database");

header("Location: ../profile.php?imageuploaded");

} else {

echo "The file size is too large.";

}

} else {

echo "There was an error with uploading this file.";

}

} else {

echo "You cannot upload this file type, must be a jpg or png type.";

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值