Php 尝试在上传时优化图像

Php 尝试在上传时优化图像,php,image-optimization,Php,Image Optimization,我有一个表单,有几个文本输入和一个文件上传。表单工作得很好,它将文件上传到它应该上传的地方,并在数据库中添加对该文件的引用 问题是图像太大了。因此,我希望表单继续上传完整大小的图像,但我希望它也上传一个单独的文件夹中的优化版本,我可以在前端显示为缩略图 我正在尝试从中实现代码 我使用的代码需要安装GD,根据我的主机,它是 这在我的functions.php文件中: function compress_image($source_url, $destination_url, $quality)

我有一个表单,有几个文本输入和一个文件上传。表单工作得很好,它将文件上传到它应该上传的地方,并在数据库中添加对该文件的引用

问题是图像太大了。因此,我希望表单继续上传完整大小的图像,但我希望它也上传一个单独的文件夹中的优化版本,我可以在前端显示为缩略图

我正在尝试从中实现代码

我使用的代码需要安装GD,根据我的主机,它是

这在我的
functions.php
文件中:

 function compress_image($source_url, $destination_url, $quality) { // optimizes images

       $info = getimagesize($source_url);

        if ($info['mime'] == 'image/jpeg')
              $image = imagecreatefromjpeg($source_url);

        elseif ($info['mime'] == 'image/gif')
              $image = imagecreatefromgif($source_url);

      elseif ($info['mime'] == 'image/png')
              $image = imagecreatefrompng($source_url);

        imagejpeg($image, $destination_url, $quality);
    return $destination_url;
    }
这是我的表单/php:

<?php

if(isset($_POST['create_post'])) {

    $portfolio_title = $_POST['portfolio_title'];
    $portfolio_tagline = $_POST['portfolio_tagline'];
    $portfolio_image = $_FILES['image']['name'];
    $portfolio_image_temp = $_FILES['image']['tmp_name'];

  move_uploaded_file($portfolio_image_temp, "../images/$portfolio_image");

    $src_url = '../images/$portfolio_image';
    $destination_url = '../images/thumbnails/$portfolio_image'; 

    compress_image($src_url, $destination_url, 60);

  $query = "INSERT INTO portfolio(portfolio_title, portfolio_tagline, portfolio_image) ";

  $query .= "VALUES('{$portfolio_title}','{$portfolio_tagline}','{$portfolio_image}' ) ";

  $create_post_query = mysqli_query($connection, $query);

  confirm($create_post_query);
};

?>

    <form action="" method="post" enctype="multipart/form-data">
        <!-- enctype is because we're uploading an image -->

        <div class="form-group">
            <label for="portfolio_title">Title</label>
            <input type="text" class="form-control" name="portfolio_title">
        </div>

        <div class="form-group">
            <label for="portfolio_tagline">Tagline</label>
            <input type="text" class="form-control" name="portfolio_tagline">
        </div>

        <div class="form-group">
            <label for="portfolio_image">Image</label>
            <input type="file" class="form-control" name="image">
        </div>

        <div class="form-group">
            <input type="submit" class="btn btn-primary" name="create_post" value="Publish">
        </div>

    </form>

乍一看,当您使用
$portfolio\u image
时,似乎需要将单引号改为双引号,这样字符串插值就可以按预期工作了。哦,天哪……我真不敢相信这有那么简单哈哈。非常感谢你!乍一看,当你使用
$portfolio\u image
时,你似乎需要将单引号改为双引号,这样字符串插值就可以像预期的那样工作了。哦,天哪……我真不敢相信这有那么简单哈哈。非常感谢你!