php - 如何在上传到 MySQL 数据库之前减小/压缩图像的大小

标签 php mysql image upload compression

如果上传的图像超过 1mb,我需要知道如何处理此代码,以便减少/压缩上传的图像的大小。

<form enctype="multipart/form-data" action='upcomg.php' method="post" name="changer">
<input name="MAX_FILE_SIZE" value="83886080" type="hidden">
<label>Please choose a file:</label><input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">

<?php
    if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {

    $tmpName = $_FILES['image']['tmp_name'];

    $fp = fopen($tmpName, 'r');
    $data = fread($fp, filesize($tmpName));
    $data = addslashes($data);
    fclose($fp);


    $query = "INSERT INTO ### ";
    $query .= "(##) VALUES ('$data')";
    $results = mysql_query($query, $link);

    // Print results
    print "Thank you, your file has been uploaded.";

    }
    else {
    print "No image selected/uploaded";
    }

    // Close our MySQL Link
    mysql_close($link);
?> 

最佳答案

首先,我不会将原始图像数据存储在数据库中。将其存储在常规的旧静态文件中会更快,并且如果您的数据库离线也不会损坏。

话虽这么说,你可以把这样的东西放在那里:

$file = $_FILES['image']['tmp_name'];
if ( $_FILES['image']['size'] > 1024*1024 )
    $file = compress($file);

你已经有压缩方法了吗?如果没有,我也可以帮助您,但您可能想看看 Imagick因为它已经内置了压缩功能。

关于php - 如何在上传到 MySQL 数据库之前减小/压缩图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17643279/

相关文章:

php - 自动化 PHP 脚本

php - PDO::__construct(): MySQL 服务器已经消失

java - MySQL从存储引擎读取自增值失败

php - CodeIgniter Active Record 的批处理 "replace into"

java - 创建一个完全透明的图像

php - 表单未提交

javascript - registerJS 中的数组到字符串转换 - Yii2

php - 使用数组从多个 mysql 表中删除行

html - 在调整大小时将照片调整到浏览器高度并在不拉伸(stretch)的情况下最大化?

java - JOptionPane showInputDialog