我已经搜索了很多东西,其中一些来自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.";
}
?>
通过这种方式,我可以成功上传图像,而不会压缩图像的大小。请告诉我如何在上传之前压缩图像大小。感谢。
答案 0 :(得分:1)
您需要在客户端压缩图像。您在此处发布的所有代码均为服务器端。将代码上传到服务器后,此代码将运行。 为此目的,有许多客户端库。 This链接将进一步提供帮助。您可以选择使用您选择的任何库。
答案 1 :(得分:0)
https://github.com/brunobar79/J-I-C - js library
我认为更好的方法 - 在上传后压缩服务器上的图像,以减少使用用户内存。这对于慢速智能手机来说非常重要。