2017-02-09 4 views
0

Opencartカスタマーサイト(例:プロフィール画像)から画像をアップロードしてサイズを変更する方法をお尋ねします。私のコードは画像をアップロードできますが、画像のサイズを変更することはできません。ファイル5MBのイメージファイルがある場合は、ファイルを200KB程度に縮小したいと考えています。私はすでにPHP関数imagejpegを試してみましたが、それは動作しません、それはimage.Hereの私のコードをアップロードしません。Opencartお客様の画像をアップロードするページ

//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 = ''; 
} 

答えて

0

あなたは画像のアップロード時に画像サイズを小さくするために、次のコードスニペットを試すことができます -

<?php 
    function reduce_image_size($source_url, $destination_url, $quality) { 

     $info = getimagesize($source_url); 

     if ($info['mime'] == 'image/jpeg') 
      $image = imagecreatefromjpeg($source_url); 
     else if ($info['mime'] == 'image/gif') 
      $image = imagecreatefromgif($source_url); 
     else if ($info['mime'] == 'image/png') 
      $image = imagecreatefrompng($source_url); 

     imagejpeg($image, $destination_url, $quality); 
     return $destination_url; 
    } 

    if($_POST) { 
     if ($_FILES["file"]["error"] > 0) { 
      $output = $_FILES["file"]["error"]; 
     } else if (($_FILES["file"]["type"] == "image/gif") || 
       ($_FILES["file"]["type"] == "image/jpeg") || 
       ($_FILES["file"]["type"] == "image/png") || 
       ($_FILES["file"]["type"] == "image/pjpeg")) { 

      $destination = 'reduced.jpg'; 
      $filename = reduce_image_size($_FILES["file"]["tmp_name"], $destination, 80); 
      $output = 'Done.'; 
     } else { 
      $output = "Uploaded image should be jpg or gif or png."; 
     } 

     echo $output . " <a href=''>Reload</a>"; die; 
    } 
?> 
<html> 
    <head> 
     <title>Reduce Image Size with PHP</title> 
    </head> 
    <body> 
<form action="" name="img_compress" id="img_compress" method="post" enctype="multipart/form-data"> 
       Upload: <input type="file" name="file" id="file"/> 
       <input type="submit" name="submit" id="submit" class="submit btn-success"/> 
    </form> 
    </body> 
</html> 
関連する問題