【发布时间】:2017-02-09 13:41:41
【问题描述】:
我想问如何从 Opencart 客户网站上传图片(例如个人资料图片)并调整其大小?我的代码可以上传图片,但它不能调整我的图片大小。如果我有 5MB 的图像文件,我想将文件缩小到 200KB 左右。我已经尝试过PHP函数imagejpeg,但它不起作用,它不会上传图像。这是我的代码:
//Check the post
if((!empty($_FILES)) && ($_FILES['photo']['size'] > 0) && ($_FILES['photo']['error'] == 0)){
//check extension
$fileType = strtolower(pathinfo(basename($this->request->files['photo']['name']), PATHINFO_EXTENSION));
if($fileType != "jpeg" && $fileType != "jpg" && $fileType != "png" && $fileType != "bmp"){
echo "<script>
alert('Extension allowed : jpeg, jpg, png, dan bmp. Your extension: ".$fileType."');
window.location.href='javascript: window.history.go(-1)';
</script>";
die();
}
//check image size
if($this->request->files['photo']['size'] > 5000000){
echo "<script>
alert('File too big, max. 5000000 (5MB). Your file: ".$this->request->files['photo']['size']."');
window.location.href='javascript: window.history.go(-1)';
</script>";
die();
}
$fileName = $this->request->files['photo']['name'];
$newimg = date('YmdHis', time());
$arr = explode(".", $fileName);
$extension = strtolower(array_pop($arr));
$foto = $newimg.".".$extension;
$uploads_dir = 'image/data/profile/';
if (is_uploaded_file($this->request->files['photo']['tmp_name'])) {
//i want to shrink image size before this upload
move_uploaded_file($this->request->files['photo']['tmp_name'], $uploads_dir.$foto);
}
}
else{
echo "<script>
alert('Please choose a photo');
window.location.href='javascript: window.history.go(-1)';
</script>";
die();
$foto = '';
}
【问题讨论】: