如何在使用php上传之前压缩图像大小

时间:2017-09-08 07:18:18

标签: php angularjs image ionic-framework filesize

我已经搜索了很多东西,其中一些来自stackoverflow。但他们都没有帮助我。我想要做的是减少图像文件的大小,并在减少图像后现在上传。这是我目前的代码:

<?php

include 'cloud_functions.php';


// GET THE USER'S ID
$userid = _clean($con, $_POST['userid']);


if(!is_dir("uploads/user/".$userid."/")){
        mkdir("uploads/user/".$userid."/", 0755);
}


$temp = explode(".", _clean($con,$_FILES["file"]["name"]));


$targetPath = "uploads/user/".$userid."/";
// RENAME THE IMAGE USING ROUND();
$newFN = round(microtime(true)) . '.' . end($temp);
$targetPath = $targetPath .  $newFN;
// GET THE FILE EXTENSION
$type = pathinfo(_clean($con, $_POST['filename']), PATHINFO_EXTENSION);

$all_types = array('jpg', 'png', 'jpeg');
$type = strtolower($type);

if(in_array($type, $all_types)){

    if(move_uploaded_file($_FILES['file']['tmp_name'], $targetPath)){
        // image uploaded w/o compressing size
        echo "1/".$newFN;
    }else{
        echo $targetPath;
        echo "There was an error uploading the file, please try again!";
    }

}else{
    echo "Please upload a valid image.";
}


?>

通过这种方式,我可以成功上传图像,而不会压缩图像的大小。请告诉我如何在上传之前压缩图像大小。感谢。

2 个答案:

答案 0 :(得分:1)

您需要在客户端压缩图像。您在此处发布的所有代码均为服务器端。将代码上传到服务器后,此代码将运行。 为此目的,有许多客户端库。 This链接将进一步提供帮助。您可以选择使用您选择的任何库。

答案 1 :(得分:0)

https://github.com/brunobar79/J-I-C - js library

我认为更好的方法 - 在上传后压缩服务器上的图像,以减少使用用户内存。这对于慢速智能手机来说非常重要。