title: How to prevent browser image caching when cropping
body: <p>I am using croppic to modify images, I need the name to be somewhat specific to an account number. Then I do this it takes away the randomness and the image left is a cached one. Is there a way I can prevent this?</p>
  
  <pre><code>// THE FIRST $output_filename WORKS GREAT BUT LEAVES NUMBEROUS UNUSED IMAGES IN SYSTEM
  // $output_filename = "busImage/".$busID."_".rand();
  
  $output_filename = "busImage/".$busID."_1";
  </code></pre>
  
  <p>I've tried <code>$response=filemtime($response);</code> it crops the image and saves it but the new image is not returned, the uploaded image remains.</p>
  
  <pre><code>$busID = 5; // set up it will change based on accounts
  
  $imgUrl = $_POST['imgUrl'];
  // original sizes
  $imgInitW = $_POST['imgInitW'];
  $imgInitH = $_POST['imgInitH'];
  // resized sizes
  $imgW = $_POST['imgW'];
  $imgH = $_POST['imgH'];
  // offsets
  $imgY1 = $_POST['imgY1'];
  $imgX1 = $_POST['imgX1'];
  // crop box
  $cropW = $_POST['cropW'];
  $cropH = $_POST['cropH'];
  // rotation angle
  $angle = $_POST['rotation'];
  
  $jpeg_quality = 100;
  
  // THE FIRST $output_filename WORKS GREAT BUT LEAVES NUMBEROUS UNUSED IMAGES IN SYSTEM
  // $output_filename = "busImage/".$busID."_".rand();
  
  $output_filename = "busImage/".$busID."_1";
  
  
  $what = getimagesize($imgUrl);
  
  switch(strtolower($what['mime']))
  {
      case 'image/png':
          $img_r = imagecreatefrompng($imgUrl);
          $source_image = imagecreatefrompng($imgUrl);
          $type = '.png';
          break;
      case 'image/jpeg':
          $img_r = imagecreatefromjpeg($imgUrl);
          $source_image = imagecreatefromjpeg($imgUrl);
          error_log("jpg");
          $type = '.jpeg';
          break;
      case 'image/gif':
          $img_r = imagecreatefromgif($imgUrl);
          $source_image = imagecreatefromgif($imgUrl);
          $type = '.gif';
          break;
      default: die('image type not supported');
  }
  
  
  //Check write Access to Directory
  
  if(!is_writable(dirname($output_filename))){
      $response = Array(
          "status" =&gt; 'error',
          "message" =&gt; 'Can`t write cropped File'
      );  
  }else{
  
      // resize the original image to size of editor
      $resizedImage = imagecreatetruecolor($imgW, $imgH);
      imagecopyresampled($resizedImage, $source_image, 0, 0, 0, 0, $imgW, $imgH, $imgInitW, $imgInitH);
  
     // rotate the rezized image
      $rotated_image = imagerotate($resizedImage, -$angle, 0);
  
     // find new width &amp; height of rotated image
      $rotated_width = imagesx($rotated_image);
      $rotated_height = imagesy($rotated_image);
  
     // diff between rotated &amp; original sizes
      $dx = $rotated_width - $imgW;
      $dy = $rotated_height - $imgH;
  
     // crop rotated image to fit into original rezized rectangle
      $cropped_rotated_image = imagecreatetruecolor($imgW, $imgH);
      imagecolortransparent($cropped_rotated_image, imagecolorallocate($cropped_rotated_image, 0, 0, 0));
      imagecopyresampled($cropped_rotated_image, $rotated_image, 0, 0, $dx / 2, $dy / 2, $imgW, $imgH, $imgW, $imgH);
  
      // crop image into selected area
      $final_image = imagecreatetruecolor($cropW, $cropH);
      imagecolortransparent($final_image, imagecolorallocate($final_image, 0, 0, 0));
      imagecopyresampled($final_image, $cropped_rotated_image, 0, 0, $imgX1, $imgY1, $cropW, $cropH, $cropW, $cropH);
  
      // finally output png image
      imagejpeg($final_image, $output_filename.$type, $jpeg_quality);
  
      $response = Array(
          "status" =&gt; 'success',
          "url" =&gt; $output_filename.$type
      );
  
  $response=filemtime($response);
  
  print json_encode($response);
  </code></pre>