使用MySQL和PHP的单个帖子/文章的图像

使用MySQL和PHP的单个帖子/文章的图像,php,mysql,file-upload,Php,Mysql,File Upload,我有一个基于会员的网站,我建立了一个注册用户可以提交评论的系统。它们使用PHP提交到MySQL数据库,然后查询到一个查看页面,如review.PHP?id=246。但是,我希望用户能够上传图像,将图像存储在服务器上的文件夹中,将文件名存储在MySQL数据库中,然后在我的review.php页面上查询每个单独的图像。我该怎么做 提前谢谢各位 假设您有一个包含列id、review\u id、img的表。id列也必须为自动递增整数。创建以下文件夹:photos,其中包括名为original的文件夹和调

我有一个基于会员的网站,我建立了一个注册用户可以提交评论的系统。它们使用PHP提交到MySQL数据库,然后查询到一个查看页面,如review.PHP?id=246。但是,我希望用户能够上传图像,将图像存储在服务器上的文件夹中,将文件名存储在MySQL数据库中,然后在我的review.php页面上查询每个单独的图像。我该怎么做


提前谢谢各位

假设您有一个包含列
id、review\u id、img
的表。id列也必须为自动递增整数。创建以下文件夹:
photos
,其中包括名为original的文件夹和调整大小的文件夹

下面的代码将调整图像大小,保存原始图像和调整大小的图像,并将其地址设置到db表中。我希望它对你有用

<?php
/* DB connection*/
require 'db.php';
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


/*registration sheck*/
$submit=$db->real_escape_string( $_POST['submit']);
$review=$db->real_escape_string($_POST['review']);

function createThumb($upfile, $dstfile, $max_width, $max_height){
   $size = getimagesize($upfile);
   $width = $size[0];
   $height = $size[1];
   $x_ratio = $max_width / $width;
   $y_ratio = $max_height / $height;
   if( ($width <= $max_width) && ($height <= $max_height)) {
           $tn_width = $width;
           $tn_height = $height;
   } elseif (($x_ratio * $height) < $max_height) {
           $tn_height = ceil($x_ratio * $height);
           $tn_width = $max_width;
   } else {
           $tn_width = ceil($y_ratio * $width);
           $tn_height = $max_height;
   }
   if($size['mime'] == "image/jpeg"){
           $src = ImageCreateFromJpeg($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           imageinterlace( $dst, true);
           ImageJpeg($dst, $dstfile, 100);
   } else if ($size['mime'] == "image/png"){
           $src = ImageCreateFrompng($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           Imagepng($dst, $dstfile);

   } else {

           $src = ImageCreateFromGif($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           imagegif($dst, $dstfile);
   }
}



if($submit){

$result = $db->query("INSERT INTO reviews (`review_id`) VALUE '$review'") or die($db->error));

$review_id = $db->insert_id;
if(isset($_FILES['upload_Image']['name']) && $_FILES['upload_Image']['name']!=='') {
    $ext = substr($_FILES['upload_Image']['name'], strpos($_FILES['upload_Image']['name'],'.'), strlen($_FILES['upload_Image']['name'])-1); 

    $imgNormal = 'img'.$new_user_id.$ext;
    $normalDestination = "photos/original/" . $imgNormal;
    $httprootmedium = "photos/resized/" . $imgNormal;
     move_uploaded_file($_FILES['upload_Image']['tmp_name'], $normalDestination);
    createThumb($normalDestination,$httprootmedium,200,300); #For 500x300 Image
} 

$result = $db->query("UPDATE review SET img='$imgNormal' WHERE id='$review_id'") or 
?>

此任务的哪一部分会给您带来麻烦?文件上传在PHP手册中有很好的描述。你不知道如何在mysql中存储数据吗?你到底想知道什么?正如你所说,逻辑是fi9,那么这件事让你有什么困扰呢?天哪,你问的是什么问题?!没有人试图帮助他,所有人都在问奎斯顿。你为什么不选择我的答案呢?你的CreateTumb函数太臃肿了。如何将其减少一点?另外,为什么不根据getimagesize信息设置扩展名?HTML输入字段的名称是什么?
review
用于文本输入,
用于图像,
用于提交按钮