如何使用PHP在MySQL中存储固定大小的图像?
我试图将用户的图像存储在数据库中,但插入后,即使图像大小以Kb为单位,图像大小始终显示为26B。 我在MySQL中使用了longBlob来存储相同的内容。 这是我的密码如何使用PHP在MySQL中存储固定大小的图像?,php,mysql,Php,Mysql,我试图将用户的图像存储在数据库中,但插入后,即使图像大小以Kb为单位,图像大小始终显示为26B。 我在MySQL中使用了longBlob来存储相同的内容。 这是我的密码 <input type="file" name="profile_picture" id="imgupload" accept=".jpg,.png,.jpeg"> // for uploading image $ff_NAME = $_FILES['profile_picture']['name'];
<input type="file" name="profile_picture" id="imgupload" accept=".jpg,.png,.jpeg">
// for uploading image
$ff_NAME = $_FILES['profile_picture']['name'];
$ff_TMP_NAME = $_FILES['profile_picture']['tmp_name'];
$ff_SIZE = $_FILES['profile_picture']['size'];
$ff_ERROR = $_FILES['profile_picture']['error'];
$ff_TYPE = $_FILES['profile_picture']['type'];
$ffileExt = explode('.',$ff_NAME);
$ffileActualExtention = strtolower(end($ffileExt));
$fallowed = array('png','jpeg','jpg');
if(in_array($ffileActualExtention,$fallowed))
{
if($ff_ERROR===0)
{
if($ff_SIZE<500000)
{
$ffileNameNew = uniqid('',true)."".$ffileActualExtention;
$ffileDestination = 'profileuploads/'.$ffileNameNew;
move_uploaded_file($ff_TMP_NAME,$ffileDestination);
}
else
{
echo 'File size must be less than 500 kb.';
}
}
else
{echo "Error in uploading the files";}
}
else
{echo "Only 'png','jpeg','jpg' are allowed";}
move\u upload\u file($ff\u TMP\u NAME,$ffileDestination)
表示将上传的文件放入路径为$ffileDestination的文件系统中$stmtt->bind_param(“s”,$ffilenamew)
这里是绑定保存的文件名$stmtt->execute()
时,文件名存储在数据库中http://example.com/xxx.png
。您只需使用
您不是在插入文件,而是在插入文件名。您正在将文件存储在文件系统中(在
profileuploads
下),我该怎么做才能将图像存储在数据库中以及文件夹profileuploads下?为什么您想要它的两个副本?通常,将图像存储在文件系统上是正确的做法。查看文件是否存储在HTML树中。您只需为其提供一个URI即可。例如,
您仍然需要存储文件名,以便将来可以创建该URI。
$query = "INSERT INTO detail (`f_profile_picture`) VALUES (?)";
$stmtt = $conn->prepare($query);//prepared statement method
$stmtt->bind_param("s",$ffileNameNew);//binding a parameter to question mark
$stmtt->execute();
if($stmtt->affected_rows > 0)
{
echo("success");
}
else
{
echo("failed");
}