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

标签 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"  />

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

最佳答案

如果您运行的是 PHP 5.3 或更高版本,您将能够使用内置的图像 magick。

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

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

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

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

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

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

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

关于php - 使用 PHP 上传到 SQL 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711706/

相关文章:

php - MySQL错误: Unknown column 'd' in 'field list'

php - 我有这段代码,它工作正常,但我想将 having 代码更改为另一个结构

php - 如何更改 PHPStorm 中选定文本/代码的颜色

PHP MYSQLI 编写语句登录并查看用户状态

php - 阻止 SELECT 直到结果可用

php - MySQL - 根据用户名查询最近的输入 - 非常慢

javascript - 删除 http ://and www from form field while customer is typing, 并显示警报?

Jquery Nivo Slider 设置每张幻灯片的延迟时间

jquery - 日期格式不适用于月份选择器

mysql - 列和行 (SQL)