use Exception;
use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Contracts\Filesystem\Factory as FileSystem;
+use Illuminate\Support\Str;
use Intervention\Image\Exception\NotSupportedException;
use Intervention\Image\ImageManager;
use phpDocumentor\Reflection\Types\Integer;
$imagePath = '/uploads/images/' . $type . '/' . Date('Y-m') . '/';
while ($storage->exists($imagePath . $imageName)) {
- $imageName = str_random(3) . $imageName;
+ $imageName = Str::random(3) . $imageName;
}
$fullPath = $imagePath . $imageName;
if ($secureUploads) {
- $fullPath = $imagePath . str_random(16) . '-' . $imageName;
+ $fullPath = $imagePath . Str::random(16) . '-' . $imageName;
}
try {
$storage->put($thumbFilePath, $thumbData);
$storage->setVisibility($thumbFilePath, 'public');
- $this->cache->put('images-' . $image->id . '-' . $thumbFilePath, $thumbFilePath, 60 * 72);
+ $this->cache->put('images-' . $image->id . '-' . $thumbFilePath, $thumbFilePath, 60 * 60 * 72);
return $this->getPublicUrl($thumbFilePath);
}
} else {
$thumb->fit($width, $height);
}
- return (string)$thumb->encode();
+
+ $thumbData = (string)$thumb->encode();
+
+ // Use original image data if we're keeping the ratio
+ // and the resizing does not save any space.
+ if ($keepRatio && strlen($thumbData) > strlen($imageData)) {
+ return $imageData;
+ }
+
+ return $thumbData;
}
/**