使用PHP上传到SQL调整图像大小

时间:2015-04-18 01:04:20

标签: php jquery mysql

我使用一个非常简单的脚本将图片上传到数据库。

<?php
    if(isset($_POST['upload'])){
        $name = $_POST['name'];
        $album_id = $_POST['album'];
        $file = $_FILES['file']['name'];
        $file_type = $_FILES['file']['type'];
        $file_size = $_FILES['file']['size'];
        $file_tmp = $_FILES['file']['tmp_name'];
        $random_name = rand();

        if(empty($file)){
        ?>
            MUST BE JPG

        <?php } else {
            move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
            mysql_query("INSERT INTO photos VALUES('', '$name', '$album_id', '$random_name.jpg')");
        ?>

        UPLOADED
        <?php
    }
}
?>

<input type="file" name="file" id="imgInp" /><br /><br />
<input type="submit" name="upload" value="Upload"  />

我正在寻找一种在上传图片时调整图片大小的方法。我不太确定我想要的宽度,但运行这样的代码最简单/最好的方法是什么?我一直在

1 个答案:

答案 0 :(得分:2)

如果您运行的是PHP 5.3或更高版本,则可以使用内置的image magick。

使用move_uploaded_file上面的以下代码,它会将其大小调整为400宽度和自动高度。

        $image = new Imagick($file_tmp);
        $image->thumbnailImage(400, 0);
        $image->writeImage($newPath);

第一行创建了一个类Imagick的实例,并传入你的文件。

第二行创建缩略图,您可以将两个数字更改为您喜欢的任何数字。

  • 第一个数字是宽度
  • 第二个数字是身高

0表示自动,因此通过将第一个参数设置为400,将第二个参数设置为0,这将保持图像的宽高比。

然后最后一行将缩略图写入您选择的目录。