我已成功将原始图像添加到我的imgs /文件夹中,也添加到服务器上。但我想将缩略图添加到数据库中。我已将它添加到imgs /文件夹中,但似乎无法找到将其插入数据库。
这是用于裁剪img并将其插入文件夹的最后一段代码。
我还需要将它插入到数据库中,因此我可以为$ _SESSION用户和用户朋友调用它,因为我有个人资料。
if (isset($_POST["upload_thumbnail"]) && strlen($large_photo_exists)>0) {
//Get the new coordinates to crop the image.
$x1 = $_POST["x1"];
$y1 = $_POST["y1"];
$x2 = $_POST["x2"];
$y2 = $_POST["y2"];
$w = $_POST["w"];
$h = $_POST["h"];
//Scale the image to the thumb_width set above
$scale = $thumb_width/$w;
$cropped = resizeThumbnailImage($thumb_image_location, $large_image_location,$w,$h,$x1,$y1,$scale);
//Reload the page again to view the thumbnail
header("location:".$_SERVER["PHP_SELF"]);
exit();
}
if(isset($_GET['a'])){
if ($_GET['a']=="delete"){
if (file_exists($large_image_location)) {
unlink($large_image_location);
}
if (file_exists($thumb_image_location)) {
unlink($thumb_image_location);
$creator_id = $_SESSION['id'];
$sql = "UPDATE users SET user_pic_small='".$img."' WHERE id=$creator_id";
$sql2 = "INSERT INTO userphotos(photo_ownerid,photo_ispublic, photo_name, photo_caption, photo_imagedata) VALUES ($creator_id,1,'Profile Picture','Profile Picture','$img')";
// insert the image
if(!mysql_query($sql)) {
echo "Fail. It broke.";
}else{
$c=mysql_query($sql2);
echo "<script> parent.alert('Image Uploaded','',1000);</script>";
}
}
}
}
希望有人可以提供帮助。感谢。
答案 0 :(得分:1)
如果要在数据库中添加缩略图的路径($ thumb_image_location),只需在unlink()之前添加插入路径的代码。
如果要将整个图像存储到数据库中,则需要将列设置为MEDIUMBLOB类型,然后在unlink()之前读取包含图像的文件的代码,例如:
$img = file_get_contents($thumb_image_location);
然后,将$ img中存储的数据INSERT到您的数据库中。
答案 1 :(得分:0)
理想情况下,you don't want to be adding the thumbnail itself to the database,只是文件的引用(文件路径)。因此,虽然我不知道您的数据库是什么样的,但您需要执行以下步骤:
基本上就是这样。
答案 2 :(得分:0)
如果您只想将图像的路径存储到数据库中,那么只插入路径并使用HTML提供它。
否则,如果要将图像的原始数据存储到数据库中,则必须将Image编码为base64字符串。
Sending/Displaying a base64 encoded Image - 以下是您在base64上编码和图像的方式。
将这个巨大的字符串存储到数据库中的Blob字段类型中。
答案 3 :(得分:0)
您可以使用:
// Read the file
$fp = fopen($file, 'r');
$data = fread($fp, filesize($file));
$data = addslashes($data);
fclose($fp);
// Create the query and insert into our database.
// image is an BLOB field type
$query = "INSERT INTO tbl_images ";
$query .= "(image) VALUES ('$data')";
$results = mysql_query($query, $link);